right now I have configured multiple pipelines, each pipeline has its own tasks and variables. To deploy all I need to manually deploy one by one.
Is it possible to create a pipeline that triggers other pipelines to combine my release definition so I could trigger all with single click ?
To create multiple releases for multiple release definitions, you can add PowerShell task to create releases for different release definition by REST API.
The PowerShell script to create a release as below:
$body = '
{
"definitionId": releasedefinitionID,
"artifacts": [
{
"alias": "",
"instanceReference": {
"id": "buildID",
"name": null
}
}
]
}
'
$bodyJson=$body | ConvertFrom-Json
Write-Output $bodyJson
$bodyString=$bodyJson | ConvertTo-Json -Depth 100
Write-Output $bodyString
$user="name"
$token="PAT"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$Uri = "https://account.vsrm.visualstudio.com/project/_apis/Release/releases?api-version=4.1-preview.6"
$buildresponse = Invoke-RestMethod -Method Post -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body $bodyString -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
write-host $buildresponse
Yes, You can. There is an option in the release pipeline called the Predeployment condition within there is a menu called trigger, where you can change/control the trigger type.
Typically looks like below

In order to deploy multiple environment parallel, change your trigger option from after environment to after release
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With