我有一个管道,它接收产品列表并为每个产品动态创建阶段。 目前每个产品都为自己创建了最后一个阶段,但我想在所有阶段成功完成后运行最后一个阶段。
parameters:
- name: product
type: object
- name: component
type: string
- name: configuration
type: string
stages:
- ${{ each product in parameters.product }}:
- stage: ${{ product }}_build
displayName: Build for ${{ product }}-${{ parameters.component }}
dependsOn: [ ] # Force to run in parallel
variables:
Configuration: ${{ parameters.configuration }}
Platform: ""
ProductName: '${{ product }}'
Component: '${{ parameters.component }}'
ConfigurationVariant: ''
SigningType: TestSigned
FirmwareSigningType: Test
ProjectFilePath: Project\SAM.eww
jobs:
- template: firmware/mcu.tpl.yml@BuildTemplate
parameters:
matrixAxis: 'ProductName,Configuration'
enablePublish: true
gitSubmoduleStrategy: 'PRAllRecursive'
preInit:
- checkout: git://MCU/${{ product }}-${{ parameters.component }}@master
clean: true
submodules: recursive
persistCredentials: true
path: s
- template: firmware/rockton-fw-pr-test.stage.tpl.yml@BuildTemplate
parameters:
uniqueName: '${{ product }}_'
dependsOn:
- ${{ product }}_build
enableAuthorization: true
environment: 'Authorize PR tests'
我想进入最后一个阶段:firmware/rockton-fw-pr-test.stage.tpl.yml@BuildTemplate
并在每个循环阶段成功完成后运行一次
知道我该怎么做吗?
答案 0 :(得分:0)
首先,将您的最终作业移到循环之外。现在,它将在每次迭代中运行,而不仅仅是最后一次。
然后更改您的 dependsOn
块以迭代您的参数并为每个作业定义一个条目,大致如下:
dependsOn:
- ${{ each product in parameters.product }}:
- ${{ product }}_build