我有azure-管线. file,并使用相同的文件在DEV上运行,SIT,UAT环境使用if elif条件,来标识要部署的分支名称和环境,
例子:如果[ $BRANCH_NAME == "develop“]那么env="app-dev”app-dev“elif [ $TAG_NAME == RC-UAT-* ]那么env="app-uat”ns="app-uat“
我想知道这样做的最佳方法,在那里我可以临时处理yml文件,识别哪个分支被触发,以及管道在哪个环境中运行。
发布于 2022-07-05 08:53:12
你可以在你的管道中使用“条件”。有关详细信息,请参阅本文档:条件- Azure管道\ Microsoft文档。
根据您的要求,我还尝试了以下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级将被跳过。当我用'dev‘分支触发管道时,阶段B将被跳过。
因此,您可以通过修改上面的示例来设计"if else“管道。
https://stackoverflow.com/questions/72846007
复制相似问题