可以使用一个变量来存储最后一个作业的名称,然后在依赖于它的作业中引用该变量。在循环中,将变量更新为循环中正在执行的作业名称。以下是一个示例:
# 定义参数数组
parameters:
- name: 'env'
type: object
default:
- 'prod'
- 'stage'
# 使用变量来存储最后一个作业名称
variables:
lastJob: 'deploy-${{ parameters.env[0] }}'
jobs:
# 定义循环作业
- job: 'loop'
pool:
vmImage: 'ubuntu-latest'
strategy:
matrix:
env: ${{ parameters.env }}
steps:
# 此处省略循环内的步骤
# 更新变量为当前正在执行的作业名称
- script: |
echo "##vso[task.setvariable variable=lastJob]deploy-${{ matrix.env }}"
displayName: 'Update lastJob variable'
# 定义依赖于最后一个作业的作业
- job: 'dependentJob'
dependsOn: ${{ variables.lastJob }}
steps:
# 此处省略依赖于最后一个作业的步骤
在上面的示例中,lastJob 变量被初始化为第一个参数值对应的作业名称(例如,deploy-prod)。在循环作业中,使用 echo "##vso[task.setvariable variable=lastJob]deploy-${{ matrix.env }}" 命令将变量更新为当前循环迭代中的作业名称。在 dependentJob 作业中,使用 $ {{variables.lastJob}} 引用最后一个作业的名称。
这样,无论参数数组中有多少个元素,都可以正确地依赖于最后一个作业。
上一篇:AzurePipeline-Deploymentjobtostartwebserverusingscriptonlytemporarilystartstheserver。
下一篇:Azurepipeline报错C1083:Cannotopenincludefile:'atlstr.h'自昨天以来