我的管道定义了两个步骤:
两个阶段都首先加载一个秘密,然后运行bash脚本来完成工作,如下图所示。
我现在面临的挑战是,将“舵”图表名称及其版本从“构建”阶段提交给“部署”。这样第二步就可以获取正确的图表。
我该如何实现?
试验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"
答案 0 :(得分:0)
使用## vso [task.setvariable-在脚本中不起作用
这是由使用不同代理的不同阶段导致的,而##vso[task.setvariable
设置的动态变量只是代理范围之一。它的生命周期与代理相同,因此一旦完成一个代理工作,它将消失。
对于可以帮助您实现从Build阶段到Deploy阶段的传递变量的解决方案,您最好将这些变量存储在一个存储中。例如使用任务Azure Key Vault actions或Write 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中访问并获取变量。