I do not have experience with this myself, but it looks like there are two ways to run the web deploymnent process by hand. One (looks older) is to invoke MSBuild with a special target (as described here) and another option (looks more modern) is to use the MSDeploy tool (which has a command line interface).
Both of these should be easy to call from FAKE script. Here is a sample that calls a command line tool:
Target "Deploy" (fun _ ->
let result =
ExecProcess (fun info ->
info.FileName <- "file-to-run.exe"
info.Arguments <- "--parameters:go-here"
) (System.TimeSpan.FromMinutes 1.0)
if result <> 0 then failwith "Operation failed or timed out"
)
Calling an MSBuild script should look something like this:
Target "BuildTest" (fun _ ->
"Blah.csproj"
|> MSBuildRelease "" "ResolveReferences;_CopyWebApplication"
|> ignore
)
As I said, I have not tested this (so it might be completely wrong), but hopefully it can point you into a useful direction, before some web deployment or FAKE experts come to SO!