Azure devops 在我的Azure DevOps YAML管道中,如何将一系列阶段转化为作业矩阵?

Azure devops 在我的Azure DevOps YAML管道中,如何将一系列阶段转化为作业矩阵?,azure-devops,yaml,azure-pipelines,Azure Devops,Yaml,Azure Pipelines,我有一套类似这样的工作阶段 - stage: UpdateWoW dependsOn: Install variables: - group: ${{ parameters.StageVars }} jobs: - template: UpdateApp.yml parameters: AppName: WoW Project: oxygen - stage: UpdateSCII dependsOn: Install variabl

我有一套类似这样的工作阶段

- stage: UpdateWoW
  dependsOn: Install
  variables:
  - group: ${{ parameters.StageVars }}
  jobs:
  - template: UpdateApp.yml
    parameters:
      AppName: WoW
      Project: oxygen

- stage: UpdateSCII
  dependsOn: Install
  variables:
  - group: ${{ parameters.StageVars }}
  jobs:
  - template: UpdateApp.yml
    parameters:
      AppName: SCII
      Project: carbon

- stage: UpdateDIII
  dependsOn: Install
  variables:
  - group: ${{ parameters.StageVars }}
  jobs:
  - template: UpdateApp.yml
    parameters:
      AppName: DIII
      Project: xenon
我只是用两个不同的参数调用同一个模板。我想用矩阵把它清理干净。当涉及到模板时,文档化的示例并没有给我太多的信息。我尝试了一些变体,但到目前为止,无论我在哪里注入矩阵或包含策略都是“意外的”

被调用的模板如下所示:

#UpdateApp.yml
parameters:
  AppName: $(AppName)
  Project: $(Project)

jobs:
- job:
  timeoutInMinutes: 120
  variables:
    Path: D:\games
  steps:
  - template: prep.yml $(Path) 

  - script: dostuff.cmd $(Path) ${{parameters.AppName}} ${{parameters.Project}}

  - script: domore.cmd $(Path) ${{parameters.AppName}} ${{parameters.Project}}
- stage: UpdateApps
  dependsOn: Install
  variables:
  - group: ${{ parameters.StageVars }}
  jobs:
  - template: UpdateApp.yml

我明白了。矩阵是在工作层面。舞台是这样的:

#UpdateApp.yml
parameters:
  AppName: $(AppName)
  Project: $(Project)

jobs:
- job:
  timeoutInMinutes: 120
  variables:
    Path: D:\games
  steps:
  - template: prep.yml $(Path) 

  - script: dostuff.cmd $(Path) ${{parameters.AppName}} ${{parameters.Project}}

  - script: domore.cmd $(Path) ${{parameters.AppName}} ${{parameters.Project}}
- stage: UpdateApps
  dependsOn: Install
  variables:
  - group: ${{ parameters.StageVars }}
  jobs:
  - template: UpdateApp.yml
模板:

#UpdateApp.yml

jobs:
- job:
  timeoutInMinutes: 120
  variables:
    Path: D:\games
  strategy:
    matrix:
      wow:
        AppName: WoW
        Project: oxygen

      sc2:
        AppName: SCII
        Project: carbon

      d3:
        AppName: DIII
        Project: xenon

  steps:
  - template: prep.yml $(Path) 

  - script: dostuff.cmd $(Path) $(AppName) $(Project)

  - script: domore.cmd $(Path) $(AppName) $(Project)

谢谢你在这里分享你的解决方案,你可以,这样它可以帮助其他社区成员谁得到同样的问题,我们可以存档这个线程,谢谢。