azure-devops - 在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?

标签 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
  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

我只是用两个不同的参数调用同一个模板。我想用矩阵来清理它。当涉及模板时,记录的示例并没有给我太多的帮助。我尝试了一些变体,但到目前为止,无论我在哪里注入(inject)矩阵或包含策略,都是“出乎意料的”。
- stage: UpdateApps
  dependsOn: Install
  variables:
  - group: ${{ parameters.StageVars }}
  jobs:
  - template: UpdateApp.yml
    matrix:
      wow:
        AppName: WoW
        Project: oxygen

      sc2:
        AppName: SCII
        Project: carbon

      d3:
        AppName: DIII
        Project: xenon

    parameters:
      AppName: $(AppName)
      Project: $(Project)

被调用的模板如下所示:
#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)

关于azure-devops - 在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437351/

相关文章:

git - 带有 $(GitVersion.NuGetVersion) 的标签源创建带有变量名称而非值的标签

Azure DevOps API 触发多 Repo 更改分支

c# - 从 azure devops 服务器下载文件将错误的数据写入文件

azure - 在 Azure Pipeline 中安装来自 Azure DevOps Artifact Feed 的包

unit-testing - 如何运行 OpenERP yaml 单元测试

aws-lambda - 通过 cloudformation yaml 添加带有错误操作的 IoT 规则

javascript - npm run prettier --检查与 azure pipeline 任务中的不同

ruby-on-rails - Rails i18n API 的 Yaml 翻译文件中的复数形式示例

Azure Devops 管道未选择最新的 Visual Studio 版本

azure - Katalon - Azure DevOps 管道