[英]How to use azure-pipeline.yml to trigger for different enviornment DEV, SIT, UAT in azure-devops
我有 azure-pipeline.yml,并使用相同的文件使用 if elif 条件在 DEV、SIT、UAT 环境中运行,以识别要部署的分支名称和环境,
示例: if [[ $BRANCH_NAME == "develop" ]] then env="app-dev" ns="app-dev" elif [[ $TAG_NAME == RC-UAT-* ]] then env="app-uat " ns="app-uat"
我想知道做同样事情的最佳方法,我可以在其中模板化我的 yml 文件并确定触发了哪个分支,以及管道正在为哪个环境运行。
您可以在管道中使用“条件”。 有关详细信息,请参阅此文档: 条件 - Azure Pipelines | 微软文档。
根据您的要求,我还尝试了以下 YAML 示例:
variables:
isMain: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
isDev: $[eq(variables['Build.SourceBranch'], 'refs/heads/dev')]
stages:
- stage: A
jobs:
- job: A1
steps:
- script: echo Hello Stage A!
- stage: B
condition: and(succeeded(), eq(variables.isMain, 'true'))
jobs:
- job: B1
steps:
- script: echo Hello Stage B!
- script: echo $(isMain)
- stage: C
condition: and(succeeded(), eq(variables.isDev, 'true'))
dependsOn: []
jobs:
- job: C1
steps:
- script: echo Hello Stage C!
- script: echo $(isMain)
当我使用“主”分支触发管道时,将跳过阶段 C。 当我使用“开发”分支触发管道时,将跳过阶段 B。
因此,您可以调整上面的示例来设计您的“if else”管道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.