Azure devops 扩展作业';s dependsOn在模板中

Azure devops 扩展作业';s dependsOn在模板中,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我正在创建一个模板,在其中传递一个工作列表。在这个模板中,我将一个“pre”作业添加到作业列表中,然后添加所有作业。我希望能够将对“pre”作业的依赖添加到作业列表中的所有作业中,而不会破坏作业列表参数中作业之间的任何依赖关系。我的模板如下所示: parameters: - name: Jobs type: jobList jobs: - job: prejob steps: - powershell: | Write-Host "This is my

我正在创建一个模板,在其中传递一个工作列表。在这个模板中,我将一个“pre”作业添加到作业列表中,然后添加所有作业。我希望能够将对“pre”作业的依赖添加到作业列表中的所有作业中,而不会破坏作业列表参数中作业之间的任何依赖关系。我的模板如下所示:

parameters:
  - name: Jobs
    type: jobList

jobs:
- job: prejob
  steps:
  - powershell: |
      Write-Host "This is my prejob"
- ${{ each job in parameters.Jobs }}:
  - ${{ each pair in job }}:
      ${{ if and(ne(pair.key, 'steps'),ne(pair.key, 'dependsOn')) }}:
        ${{ pair.key }}: ${{ pair.value }}
    dependsOn: 'prejob'
    steps:
    - ${{ job.steps }}
现在,这当然覆盖了传递的作业的依赖项

我可以在模板中更改哪些内容,以便将传递的作业依赖项与作业前的作业关联起来?
join
表达式连接两个数组,但我的
prejob
文本不是数组,我不确定作业的
dependsOn
属性始终是数组。

请尝试以下操作:

参数:
-姓名:乔布斯
类型:工作清单
工作:
-工作:工作前
步骤:
-powershell:|
写主持人“这是我的职前工作”
-${{parameters.Jobs}中的每个作业:
-${{作业中的每对}}:
${if and(ne(pair.key,'steps'),ne(pair.key,'dependsOn'))}:
${pair.key}}:${{pair.value}
德彭森:
-“工作前”
-${{if job.dependsOn}}:
-${{job.dependsOn}
步骤:
-${{job.steps}
通过这种方式,您应该能够依赖于
工前
,并保持与作业的依赖关系。

请尝试以下方法:

参数:
-姓名:乔布斯
类型:工作清单
工作:
-工作:工作前
步骤:
-powershell:|
写主持人“这是我的职前工作”
-${{parameters.Jobs}中的每个作业:
-${{作业中的每对}}:
${if and(ne(pair.key,'steps'),ne(pair.key,'dependsOn'))}:
${pair.key}}:${{pair.value}
德彭森:
-“工作前”
-${{if job.dependsOn}}:
-${{job.dependsOn}
步骤:
-${{job.steps}

通过这种方式,您应该能够对
prejob
建立依赖关系,并保留作业的依赖关系。

我会试试看,但是您确定dependson允许使用语法吗?根据文档,它应该是数组(方括号)语法()Yes。你甚至有这样的例子,看起来你是对的。yaml文档确实不一致,信息分散。关于dependson的所有其他信息表明您需要使用['a','b']语法。如果允许使用“normal”y'all语法,我不理解为什么它不是默认示例。谢谢我会测试它,但我看不出为什么它不应该work@PaulVrugt请告诉我们您的测试结果。我会的,但我要到周一才能测试。我会试一试,但您确定dependson允许使用语法吗?根据文档,它应该是数组(方括号)语法()Yes。你甚至有这样的例子,看起来你是对的。yaml文档确实不一致,信息分散。关于dependson的所有其他信息表明您需要使用['a','b']语法。如果允许使用“normal”y'all语法,我不理解为什么它不是默认示例。谢谢我会测试它,但我看不出为什么它不应该work@PaulVrugt请告诉我们你的测试结果。我会的,但我要到星期一才能测试