We are running a Powershell task to initiate an msdeploy command as part of our standard deployment process. This accomplishes the task of pushing builds to respective environments. How, in cases when the msdeploy task fails, the deployment is still reported as successful in Bamboo. This despite the fact that msdeploy clearly reports an error in the Bamboo log.
I believe the issue is that msdeploy does not return a success or failure code. I'm wondering if others have encountered this and how they have addressed it, or if there is an alternate means of triggering msdeploy.exe without using a Powershell script.
Thanks!
The secret was to use Start-Process with -PassThru, which allowed capture of msdeploy output variables.
Found answer here: https://stackoverflow.com/questions/33537362/how-to-check-if-ms-deploy-worked-properly/35087058#35087058.
This script works:
$msdeploy = "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
$arguments = [string[]]@(
"-verb:sync",
"-source:iisApp='${bamboo.build.working.directory}\******'",
"-dest:iisApp='******',ComputerName='******',authType='NTLM',username=''",
"-allowUntrusted",
"-skip:file=appsettings\.json$")
$proc = Start-Process $msdeploy -ArgumentList $arguments -NoNewWindow -Wait -PassThru
$handle = $proc.Handle
$proc.WaitForExit();
if ($proc.ExitCode -ne 0) {
exit 1
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.