【问题标题】:In my Azure DevOps YAML Pipeline, how do I turn a bunch of Stages into a matrix of Jobs?在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?
【发布时间】:2020-02-14 15:41:38
【问题描述】:

我有一组看起来像这样的工作阶段。

- 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

我只是用两个不同的参数调用同一个模板。我想用矩阵来清理它。当涉及模板时,记录的示例并没有给我太多的帮助。我已经尝试了一些变体,但到目前为止,无论我在哪里注入矩阵或包含策略都是“出乎意料的”。

- 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}}

【问题讨论】:

    标签: azure-devops yaml azure-pipelines


    【解决方案1】:

    想通了。矩阵进入工作级别。舞台是这样的:

    - 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)
    

    【讨论】:

    • 感谢您在这里分享您的解决方案,您可以 Accept it as an Answer ,这样它可以帮助遇到相同问题的其他社区成员,我们可以归档这个帖子,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2019-09-01
    • 2021-10-14
    • 2020-10-26
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多