Skip to content

Instantly share code, notes, and snippets.

@Antebios
Last active October 20, 2021 22:51
Show Gist options
  • Save Antebios/d85ee699e4d0537a90b1cc5574d0ed0d to your computer and use it in GitHub Desktop.
Save Antebios/d85ee699e4d0537a90b1cc5574d0ed0d to your computer and use it in GitHub Desktop.
Create Azure DevOps Release Using PowerShell
Write-Host "Prepare variables..."
# Pass or set your ADO PAT. Please be sure to add ':' at the beginning.
$adoPAT=":<PAT GOES HERE>"
$patBytes = [System.Text.Encoding]::UTF8.GetBytes($adoPAT)
$encodedPAT =[Convert]::ToBase64String($patBytes)
# ID of the Release Definition
$releaseDefId = 42
# ID of the Build that is referenced via its Alias name.
# Which is 'PTM' for example.
$buildId = $env:RELEASE_ARTIFACTS_PTM_BUILDID
# Replace ORG_NAME and PROJECT_NAME with your environment.
$url = 'https://vsrm.dev.azure.com/<ORG_NAME>/<PROJECT_NAME>/_apis/release/releases?api-version=6.0'
$body = @"
{
"definitionId": $releaseDefId,
"description": "Creating Sample release",
"artifacts": [
{
"alias": "PTM",
"instanceReference": {
"id": "$buildId",
"name": null
}
}
],
"isDraft": false,
"reason": "none",
"manualEnvironments": null
}
"@
$headers = @{
"Accept"="application/json"
"Authorization"="Basic $encodedPAT"
"Content-Type"="application/json"
}
Write-Host $body
Write-Host $headers
Write-Host "Call Release Creation..."
$releaseObj = Invoke-RestMethod -uri $url -Method POST -Headers $headers -Body $body
Write-Host "Release is created."
$releaseId = $releaseObj.id
Write-Host "Release ID = $releaseId"
##vso[task.setvariable variable=TestReleaseID;isSecret=false;isOutput=true;]$releaseId
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment