Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,363,022
Community Members
 
Community Events
168
Community Groups

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

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

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

Atlassian Community Events