You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Pipeline YML如何循环遍历参数动态生成发布阶段

解决方案

首先明确:你完全可以用和Job循环相同的${{ each }}模板语法动态生成Stages,以下是满足你所有要求的实现方式:

核心实现逻辑

1. 需求对应实现方案

  • 人工审批:直接在Azure DevOps对应环境中配置审批规则即可,不需要修改YAML,配置路径:项目后台 → 管道 → 环境 → 选择对应环境 → 右上角「更多操作」→ 审批和检查 → 添加审批人
  • 按顺序执行+上阶段成功才运行:利用你参数中已定义的dependsOn字段绑定前置阶段,Azure DevOps默认规则为仅当前置所有阶段全部执行成功后,才会运行当前阶段

2. 修改后的完整YAML配置

parameters:
  - name: 'environments'
    type: object
    default: 
      - environment: development
        variableGroup: strata2-admin-spa-vg
        dependsOn: 'build'
      - environment: test
        variableGroup: strata2-test-admin-spa-vg
        dependsOn: 'development'
      - environment: production
        variableGroup: strata2-development-variables
        # 若需要按 development→test→production 顺序执行,此处dependsOn改为test即可
        dependsOn: 'test'
  - name: 'buildTemplate'
    type: string
    default: buildTemplate.yml
  - name: 'publishTemplate'
    type: string
    default: publishTemplate.yml

trigger:
  - main

pool:
  vmImage: ubuntu-latest

stages:
  - stage: build
    displayName: Build stage
    jobs:
      - ${{each build in parameters.environments}}:
        - template: ${{parameters.buildTemplate}}
          parameters:
            environment: ${{build.environment}}
            variableGroup: ${{build.variableGroup}}

  # 动态生成发布阶段
  - ${{ each env in parameters.environments }}:
    - stage: Publish_${{ env.environment }}
      displayName: Publish ${{ env.environment }} environment
      # 动态绑定前置阶段
      dependsOn: ${{ if eq(env.dependsOn, 'build') }}: build ${{ else }}: Publish_${{ env.dependsOn }}
      jobs:
        - template: ${{parameters.publishTemplate}}
          parameters:
            environment: ${{ env.environment }}_websites
            variableGroup: ${{ env.variableGroup }}

注意事项

  • Stage名称不允许包含空格、特殊字符,因此统一使用Publish_环境名的命名格式保证合法性
  • 若需要调整发布顺序,仅需修改parameters.environments中对应条目的dependsOn值即可,无需修改循环逻辑
  • 若需要针对某个环境跳过审批,直接删除对应环境的审批配置即可,无需修改YAML文件

内容的提问来源于stack exchange,提问作者user3067684

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:54:04