使用 azure-pipeline.yaml 文件从 Azure Pipeline 获取构建状态
Get Build Status from Azure Pipeline using azure-pipeline.yaml file
如何在 post 构建中配置 azure-pipeline.yaml 文件以获取构建状态?我必须通过在 azure-pipeline.yaml 文件中使用 azure-devops-rest-api
或 azure-devops-node-api
来获取管道的当前构建状态。
请帮忙!
How to configure azure-pipeline.yaml file in post build to get the build status?
我们可以使用 REST API Builds - List 来获取详细的构建信息:
https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitions}&api-version=5.1
在 YAML 中,我们可以添加一个 powershell 任务来获取构建结果,例如:
- task: PowerShell@2
inputs:
targetType : inline
script: |
$url = "https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitionID}&api-version=5.1"
$connectionToken="Your PAT Here"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$buildPipeline= Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
$BuildResult= $buildPipeline.value.result | Select-Object -first 1
Write-Host This is Build Result: $BuildResult
我们列出指定定义的所有构建结果,然后使用 Select-Object -first 1
获取最新的构建结果。
作为测试,使用 REST API,我们可以获得当前管道的 最新构建 的结果,但我们无法获得我们这次执行的构建结果。
此外,还有一个Predefined variables,我们可以通过预定义变量Agent.JobStatus
检查获取管道的当前构建状态,所以我添加了一个命令行任务来输出这个值在 YAML 中:
- script: |
echo $(Agent.JobStatus)
这个变量可以获得当前构建状态。
希望对您有所帮助。
如何在 post 构建中配置 azure-pipeline.yaml 文件以获取构建状态?我必须通过在 azure-pipeline.yaml 文件中使用 azure-devops-rest-api
或 azure-devops-node-api
来获取管道的当前构建状态。
请帮忙!
How to configure azure-pipeline.yaml file in post build to get the build status?
我们可以使用 REST API Builds - List 来获取详细的构建信息:
https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitions}&api-version=5.1
在 YAML 中,我们可以添加一个 powershell 任务来获取构建结果,例如:
- task: PowerShell@2
inputs:
targetType : inline
script: |
$url = "https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitionID}&api-version=5.1"
$connectionToken="Your PAT Here"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$buildPipeline= Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
$BuildResult= $buildPipeline.value.result | Select-Object -first 1
Write-Host This is Build Result: $BuildResult
我们列出指定定义的所有构建结果,然后使用 Select-Object -first 1
获取最新的构建结果。
作为测试,使用 REST API,我们可以获得当前管道的 最新构建 的结果,但我们无法获得我们这次执行的构建结果。
此外,还有一个Predefined variables,我们可以通过预定义变量Agent.JobStatus
检查获取管道的当前构建状态,所以我添加了一个命令行任务来输出这个值在 YAML 中:
- script: |
echo $(Agent.JobStatus)
这个变量可以获得当前构建状态。
希望对您有所帮助。