我正在与TFS本地合作。我的问题是,在发行版中,我有两个由手动干预分开的代理阶段。
在第一个代理阶段,我设置了一个变量:
Write-Verbose $("##vso[task.setvariable variable={0};]{1}" -f $variablename, $variable)
问题是,在第二个代理阶段,即使在第二发行阶段使用相同的代理,该变量也不存在。
在同一版本期间,如何通过两个代理阶段之间的变量?
无法持续变量(无论powershell变量或vsts vsts用户定义变量))现在。
并且有一个相关的问题变量通过日志记录命令在代理之间不持续,您可以跟进。
现在的工作是在下一个代理阶段再次定义变量。
您可以通过使用TFS REST API在代理阶段共享变量,并在版本中创建新变量。
您可以创建一个辅助模块来促进此任务。
- 使用环境变量
$Env:Release_ReleaseId
获取发布。 - 使用
Add-Member
添加一个鲁perty添加到在步骤1中返回的版本的变量,其中名称是您所需的变量名称,该值是configurationVariableValue。
。
- 使用添加变量保存版本。
为了使用这种方法,您将在第一个代理中设置变量。然后,在第二代理中,您可以使用$(VariableName)
语义读取TFS变量。
我已经使用了"可变脱水任务"将构建管道中我的伪像文件夹的值写入。然后,我阅读了与Inline-Powershell的JSON。目前,我正在对我的发行管道中的每项任务进行阅读,这对我来说似乎很精神,但这是有效的。您应该能够设置全球或环境吗?可变并使用它。据说是在2017年修复,但我正在使用2015年。
正确的方法是使用变量组在管道之间持续存在:https://learn.microsoft.com/en-us/azure/devops/pipelines/pipelines/library/varible/varible/varible/varible-groups?view = azure-devops& tabs = yaml