【发布时间】:2020-09-06 06:59:33
【问题描述】:
我正在构建一个多阶段管道,并且我使用了很多模板,因为每个环境的部署作业、任务和阶段都有很多共享逻辑。所以在舞台上我设置了一个environmentName 变量,然后在每个作业中使用它:
- stage: StageReleaseProd
displayName: Stage Release (Prod)
variables:
environmentName: 'prod'
jobs:
- deployment: DeployWebApp
displayName: Deploy Wep App
pool:
vmImage: $(vmImage)
environment: $(environmentName)
strategy:
runOnce:
deploy:
steps:
- template: config/pipelines/templates/_deploy.task.yml
parameters:
environmentName: $(environmentName)
这通常非常有效。我可以在 ADO UI 中查看所有环境,并且可以在阶段之间添加批准检查。但我也经常碰到这个:
有时变量不会被插值。感觉这发生在 50% 的时间里,但我也无法推断出原因。目前我的解决方法是在不使用参数的情况下对环境变量进行硬编码,但这严重限制了我对所有管道进行模板化的方式。
【问题讨论】:
标签: azure azure-devops azure-pipelines