繁体   English   中英

如何使用 azure-pipeline.yml 触发 azure-devops 中的不同环境 DEV、SIT、UAT

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM