我试图在我的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
。
答案 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)
。