我在 Azure DevOps 中创建了发布管道。我正在大三角帆内进行部署。部署成功/失败后,部署状态报告应进入 Azure DevOps 中的发布管道阶段。
如何做到这一点?Rest-Api可以吗?
我在 Azure DevOps 中创建了发布管道。我正在大三角帆内进行部署。部署成功/失败后,部署状态报告应进入 Azure DevOps 中的发布管道阶段。
如何做到这一点?Rest-Api可以吗?
可以通过 rest api 触发 azure devops 发布管道阶段。
可以先使用Releases-Create rest api 创建一个release。
POST https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=6.1-preview.8
如果您想触发此版本中的特定阶段。然后您可以使用Releases - 更新发布环境。
PATCH https://vsrm.dev.azure.com/{organization}/{project}/_apis/Release/releases/{releaseId}/environments/{environmentId}?api-version=6.1-preview.7
请参阅下面的 powershell 脚本示例:您可以按照此处的步骤获取个人访问令牌。
$url = "https://vsrm.dev.azure.com/{org}/{proj}/_apis/release/releases?api-version=6.1-preview.8"
$PAT="Personnal Access Token"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))
$body = '{
"definitionId": releaseDefinitionId,
}'
#Create a release
$releaseInfo = Invoke-RestMethod -Uri $url -Headers @{Authorization = ("Basic {0}" -f $base64AuthInfo)} -Method post -Body $body -ContentType "application/json"
#Trigger a specific stage
$releaseId = $releaseInfo.id
$EnvironmentIds = $releaseInfo.environments | select id
#Trigger the second stage
$EnvUrl = "https://vsrm.dev.azure.com/{org}/{proj}/_apis/Release/releases/$($releaseId)/environments/$($EnvironmentIds[1].id)?api-version=6.1-preview.7"
$envBody='{
"status": "inProgress"
}'
Invoke-RestMethod -Uri $EnvUrl -Headers @{Authorization = ("Basic {0}" -f $base64AuthInfo)} -Method patch -Body $envBody -ContentType "application/json"