如何获取 Azure DevOps 中最新/最后一个管道构建的结果

问题描述 投票:0回答:1

在 Azure DevOps 中,我试图获取管道分支上最新/最后一个管道的结果。这是为了检查分支上的先前构建是否由于某些错误而失败,并且在修复错误后,管道应该触发对应于分支的提交。如果分支构建成功,管道应该跳过构建。

我正在尝试使用以下命令获取结果,以使用 Azure DevOps API 调用获取结果,该调用在浏览器中工作正常,但在通过管道运行时给出 null。

previousRunId=$(curl -u ":$(System.AccessToken)" -X GET "$(System.CollectionUri)/$(System.TeamProjectId)/_apis/build/builds?definitions=$(System.DefinitionId)&branchName=$(Build.SourceBranch)&$top=1" | jq '.value[0].result')
echo "Previous run status: ${previousRunId}"

如何得到如下实际结果?

azure azure-devops azure-devops-rest-api
1个回答
0
投票

您的脚本中有一个例外。如果您在没有

jq
的情况下运行命令,您可能会发现以下消息:

{"$id":"1","innerException":null,"message":"buildIds 过滤器可能 不能与其他过滤器一起使用 参数。","typeName":"Microsoft.TeamFoundation.Build.WebApi.InvalidBuildQueryException, Microsoft.TeamFoundation.Build2.WebApi","typeKey":"InvalidBuildQueryException","errorCode":0,"eventId":3000}

你必须逃跑

$top

$(System.CollectionUri)/$(System.TeamProjectId)/_apis/build/builds?definitions=$(System.DefinitionId)&branchName=$(Build.SourceBranch)&\$top=1
© www.soinside.com 2019 - 2024. All rights reserved.