我有这样的东西:
- ${{ each workItem in parameters.workList }}: - job: '{{workItem.Name}}_${{ parameters.poolObj.Name }}_${{ parameters.agentName }}' ... - job: 'Clean_up': ...
如何使Clean_up取决于上一个作业,因为上一个作业是动态的。谢谢。
z31licg01#
首先,我想指出的是,可以为每个作业定义自定义displayName。该值将在每次运行时显示。默认情况下,它与id相同。在您的示例中,您使用了复杂的id值,这将使解决方案更加复杂。下面是一个简单的场景:
displayName
id
parameters: - name: workList type: object default: [FirstThing, SecondThing, ThirdThing] - name: poolObj default: MyMachines - name: agentName default: customAgent jobs: - ${{ each workItem in parameters.workList }}: - job: '${{workItem}}' steps: - script: echo 'Doing some things...' displayName: ${{workItem}}_${{ parameters.poolObj }}_${{ parameters.agentName }} - job: cleanup dependsOn: ${{ parameters.workList }} steps: - script: echo doing cleanup
在上面的示例中,我将循环中作业的id仅更改为workItem。这仍然会产生唯一的作业id,因为poolObj和agentName参数不依赖于当前的workItem。但它仍然会在运行结果中显示全名。cleanup作业依赖于整个workList数组,并且它将工作,因为所有作业都具有与该数组中的项相同的ID。这将是更复杂的解决方案,如果出于某种原因,我们将使用的作业ID是连接的几个参数的结果。
workItem
poolObj
agentName
cleanup
workList
parameters: - name: workList type: object default: [FirstThing, SecondThing, ThirdThing] - name: poolObj default: MyMachines - name: agentName default: customAgent jobs: - ${{ each workItem in parameters.workList }}: - job: '${{workItem}}_${{ parameters.poolObj }}_${{ parameters.agentName }}' steps: - script: echo '${{workItem}}_${{ parameters.poolObj }}_${{ parameters.agentName }}' - job: cleanup dependsOn: ${{ split(format('{0}_{1}_{2}', join(format('_{0}_{1};', parameters.poolObj, parameters.agentName), parameters.workList), parameters.poolObj, parameters.agentName), ';') }} steps: - script: echo doing cleanup
在这里,我加入参数数组并将其拆分回来以生成转换后的数组。
1条答案
按热度按时间z31licg01#
首先,我想指出的是,可以为每个作业定义自定义
displayName
。该值将在每次运行时显示。默认情况下,它与id
相同。在您的示例中,您使用了复杂的id
值,这将使解决方案更加复杂。下面是一个简单的场景:
在上面的示例中,我将循环中作业的id仅更改为
workItem
。这仍然会产生唯一的作业id,因为poolObj
和agentName
参数不依赖于当前的workItem
。但它仍然会在运行结果中显示全名。cleanup
作业依赖于整个workList
数组,并且它将工作,因为所有作业都具有与该数组中的项相同的ID。这将是更复杂的解决方案,如果出于某种原因,我们将使用的作业ID是连接的几个参数的结果。
在这里,我加入参数数组并将其拆分回来以生成转换后的数组。