Skip to content

Instantly share code, notes, and snippets.

@lpsm-dev
Created June 5, 2023 14:26
Show Gist options
  • Save lpsm-dev/70f25cf8b98440efd1ced81d9ea8f25e to your computer and use it in GitHub Desktop.
Save lpsm-dev/70f25cf8b98440efd1ced81d9ea8f25e to your computer and use it in GitHub Desktop.
[DevOps] - Azure DevOps pipeline Release Classic Check
$headers = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }
$orgName = $env:ORG_NAME
$projectName = $env:SYSTEM_TEAMPROJECT
$releaseRefId = $env:RELEASE_REF_ID
$releaseRefStageName = $env:RELEASE_REF_STAGE_NAME
Write-Host "======================================================="
$releasRefURL = "https://vsrm.dev.azure.com/$orgName/$projectName/_apis/release/releases?definitionId=$releaseRefId&api-version=5.1"
Write-Host "=> Release Ref URL: [$releasRefURL]"
$releaseRefInfo = Invoke-RestMethod -Method Get -Uri $releasRefURL -Headers $headers -ContentType "application/json"
Write-Host "=> Release Ref [$releaseRefId]-[$($releaseRefInfo.value[0].releaseDefinition.name)] Info: [$releaseRefInfo]"
Write-Host "======================================================="
$lastReleaseRefURL = "https://vsrm.dev.azure.com/$orgName/$projectName/_apis/release/releases/$($releaseRefInfo.value[0].id)?api-version=5.1"
Write-Host "=> Last Release Ref URL: [$lastReleaseRefURL]"
$lastReleaseRefInfo = Invoke-RestMethod -Method Get -Uri $lastReleaseRefURL -Headers $headers -ContentType "application/json"
Write-Host "=> Last Release Ref [$($releaseRefInfo.value[0].id)] Info: [$lastReleaseRefInfo"
Write-Host "======================================================="
$lastReleaseEnviromentId = $lastReleaseRefInfo.environments.Where({ $_.name -eq $releaseRefStageName }).id
$environmentURL = "https://vsrm.dev.azure.com/$orgName/$projectName/_apis/Release/releases/$($releaseRefInfo.value[0].id)/environments/$($lastReleaseEnviromentId)?api-version=5.1-preview.1"
Write-Host "=> Environment URL: [$environmentURL]"
$environment = Invoke-RestMethod -Method Get -Uri $environmentURL -Headers $headers -ContentType "application/json"
Write-Host "=> Show Environment [$releaseRefStageName]-[$lastReleaseEnviromentId] Info: [$environment]"
$environmentStatus = $environment.status
Write-Host "=> Show Environment Status: [$environmentStatus]"
Write-Host "======================================================="
if($environmentStatus -ne "succeeded")
{
Write-Error "Previous release not succeeded!"
}
else
{
Write-Host "Previous release succeeded :)"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment