首页 > 解决方案 > 在 YAML 模板中引用管道作业名称

问题描述

有没有办法在 Azure DevOps YAML 模板中引用作业参数的名称?我知道我可以将作业名称作为其自己的字符串参数传递,但我希望有一些不那么笨拙的东西。

模板.yml

parameters:
- name: MyJob
  type: job

jobs:
- ${{ parameters.MyJob }}

- job: Job2
  dependsOn: # How to make this depend on MyJob?

天蓝色管道.yml

stages:
- stage: Stage1
  jobs:
  - template: template.yml
    parameters:
      MyJob:
        job: SomeJobName
        steps:
        - script: echo Hello

我尝试访问${{ parameters.MyJob.name }},但它似乎不存在。

标签: azure-devops

解决方案


我已经想通了,尽管需要大量的试验和错误才能获得正确的语法和间距。文档对间距和表达式以及何时使用破折号并不是很清楚。

parameters:
- name: MyJob
  type: job

jobs:
- ${{ parameters.MyJob }}

- job: Job2
  ${{ each pair in parameters.MyJob }}:
    ${{ if eq(pair.key, 'job') }}:
      dependsOn: ${{ pair.value }}
  steps:
  ...

推荐阅读