Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to fail a deployment when msdeploy.exe Powershell script fails

christok March 4, 2019

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!

1 answer

1 accepted

1 vote
Answer accepted
christok March 5, 2019

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
}

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events