在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?
Posted
技术标签:
【中文标题】在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?【英文标题】:In my Azure DevOps YAML Pipeline, how do I turn a bunch of Stages into a matrix of Jobs? 【发布时间】: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
【问题讨论】:
【参考方案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 ,这样它可以帮助遇到相同问题的其他社区成员,我们可以归档这个帖子,谢谢。以上是关于在我的 Azure DevOps YAML Pipeline 中,如何将一堆阶段转换为作业矩阵?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法从 Azure DevOps YAML 读取文件?
将数组作为输入传递给 Azure DevOps YAML 任务