如何在构建后配置 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)
这个变量可以获取当前的构建状态。
希望这有帮助。
关于azure-devops - 使用 azure-pipeline.yaml 文件从 Azure Pipeline 获取生成状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59451306/