gpt4 book ai didi

azure-devops - 从引用的管道资源中获取最新的构建 ID

转载 作者:行者123 更新时间:2023-12-03 15:55:40 25 4
gpt4 key购买 nike

在经典发布管道中,可以添加其他管道作为工件资源 - 这些可以是触发器,也可以只是引用。然后,您可以引用有关它们的信息,例如使用 $(Release.Artifacts.ARTIFACTNAME.BuildId) 的构建 ID .

你现在可以做 something similar在多阶段 yaml 管道中:

resources:
pipelines:
- pipeline: MyBuild
source: My build pipeline name
trigger:
branches:
- master

steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: Write-Host Referenced pipeline build id is: ???

但是根据上面的 PowerShell 步骤,我找不到一种方法来获取以这种方式关联的资源的构建 ID,而且我还无法在文档中找到任何内容。

我所做的一些绝望的尝试是:

$(Release.Artifacts.MyBuild.BuildId)
$(resources.MyBuild.BuildId)
$(BuildId@MyBuild)

有谁知道如何做到这一点?

最佳答案

似乎无法直接获取引用资源的信息。
解决方法是使用 powershell 任务调用 Restful Api来获取这些信息。请引用以下:

steps: 
- powershell: |
$url="https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?includeLatestBuilds=true&api-version=5.1"
$result = Invoke-RestMethod -Uri $url -Headers @{authorization = "Bearer $(System.AccessToken)"} -Method Get
$buildId = $result.latestBuild.id
echo "##vso[task.setvariable variable=buildId;isOutput=true]$buildId" #set a variable to refer to the buildid
name: setvarStep

#get the variable set in above task.
- script: |
echo $(setvarStep.buildId)

上例通过调用restful api获取lastbuild的id,并使用脚本 ##vso[task.setvariable variable=buildId;isOutput=true]$buildId"将其输出到以下任务。

查询 here有关如何在 yaml 管道中设置变量的更多信息。

但是,如果您对这个解决方法不满意,可以去 here提交此案例的功能请求,或报告问题。

enter image description here

关于azure-devops - 从引用的管道资源中获取最新的构建 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58747669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com