AzureDevOp使用脚本将信息从一个阶段传递到另一个阶段

时间:2019-10-11 10:56:26

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

Pipeline

我的管道定义了两个步骤:

  • 一个人可以通过两个单独的工件来构建综合头盔图
  • 两次将此图表部署到群集中

两个阶段都首先加载一个秘密,然后运行bash脚本来完成工作,如下图所示。

Steps 我现在面临的挑战是,将“舵”图表名称及其版本从“构建”阶段提交给“部署”。这样第二步就可以获取正确的图表。

我该如何实现?


试验1:使用##vso[task.setvariable-在脚本中无法使用

echo "##vso[task.setvariable variable=HELM_CHART_NAME]$HELM_CHART_NAME"
echo "##vso[task.setvariable variable=HELM_CHART_VERSION]$HELM_CHART_VERSION"

1 个答案:

答案 0 :(得分:0)

  

使用## vso [task.setvariable-在脚本中不起作用

这是由使用不同代理的不同阶段导致的,而##vso[task.setvariable设置的动态变量只是代理范围之一。它的生命周期与代理相同,因此一旦完成一个代理工作,它将消失。

对于可以帮助您实现从Build阶段到Deploy阶段的传递变量的解决方案,您最好将这些变量存储在一个存储中。例如使用任务Azure Key Vault actionsWrite Secrets to Key Vault将其存储在Azure Key库中。

另一种方法是使用rest api通过powershell脚本将其添加为发布变量:

PUT https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}?api-version=5.0

然后,在下一阶段,它可以从Release Variables中访问并获取变量。