通过两个代理相之间的释放变量



我正在与TFS本地合作。我的问题是,在发行版中,我有两个由手动干预分开的代理阶段。

在第一个代理阶段,我设置了一个变量:

Write-Verbose $("##vso[task.setvariable variable={0};]{1}" -f $variablename, $variable)

问题是,在第二个代理阶段,即使在第二发行阶段使用相同的代理,该变量也不存在。

在同一版本期间,如何通过两个代理阶段之间的变量?

无法持续变量(无论powershell变量或vsts vsts用户定义变量))现在。

并且有一个相关的问题变量通过日志记录命令在代理之间不持续,您可以跟进。

现在的工作是在下一个代理阶段再次定义变量。

您可以通过使用TFS REST API在代理阶段共享变量,并在版本中创建新变量。

您可以创建一个辅助模块来促进此任务。

  1. 使用环境变量$Env:Release_ReleaseId获取发布。
  2. 使用 Add-Member添加一个鲁perty添加到在步骤1中返回的版本的变量,其中名称是您所需的变量名称,该值是configurationVariableValue。
  3. 使用添加变量保存版本。

为了使用这种方法,您将在第一个代理中设置变量。然后,在第二代理中,您可以使用$(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

最新更新