在Azure Devops构建管道步骤之间传递输出变量,例如7位git哈希

时间:2019-09-18 08:46:57

标签: azure-devops azure-pipelines build-pipeline

我试图在我的Azure Devops构建管道构建的工件名称中包括7位git哈希。在我的构建代理作业中,我有一个内嵌的powershell脚本,其中包含以下几行:

$commitId = "$(Build.SourceVersion)"
$shortCommitId = ("$commitId").SubString(0,7)

在Powershell脚本的“输出变量”下的选项中,添加参考名称:ps

然后在Powershell步骤之后的“发布工件”步骤中,将工件名称设置为:

$(ApplicationName)_Rel_$(ps.shortCommitId)_$(build.buildnumber)

管道完成运行后的实际结果是:

MyApplication_Rel_$(ps.shortCommitId)_20190918.1

如何在步骤之间传递变量shortCommitId,使其成为工件名称的一部分? MyApplication_Rel_04f53f_20190918.18

1 个答案:

答案 0 :(得分:2)

只需在下一步中添加另一行即可创建变量:

Write-Host "##vso[task.setvariable variable=shortCommitId;]$shortCommitId"

在“发布工件”任务中,使用变量$(shortCommitId)

$(ApplicationName)_Rel_$(shortCommitId)_$(build.buildnumber)

如果要将其用作输出变量,另一种选择是添加isOutput=true

Write-Host "##vso[task.setvariable variable=shortCommitId;isOutput=true]$shortCommitId"

现在您可以使用$(ps.shortCommitId)