如何在继承不可变的 YAML 模板之前运行自定义作业

问题描述 投票:0回答:1

我们希望在继承执行构建工作的不可变 YAML 之前添加以下代码片段。

jobs:
  - job: PreBuild
    timeoutInMinutes: 120
    pool:
      name: 'poolname'
      vmImage: 'windows'
      steps:
        - checkout: self
          clean: true
          persistCredentials: true
        - task: ..........
          ......
        - task: ..........
          ......

但是当我们在

extends
之前添加代码片段时,YAML会提示:
Unexpected value 'extends'

extends:
  template: template.yml@TemplateRepo

那么,基于不可变的构建模板,让我们在继承模板之前运行多个任务(其中模板作业始终首先执行)的最佳解决方案是什么? 或者,是否有任何其他方法可以让所有内容继承到模板内,但首先运行我们的自定义步骤?

azure-devops yaml azure-pipelines azure-pipelines-yaml
1个回答
0
投票

参考此文档:模板使用参考

扩展了管道中允许的模板控制。当扩展模板控制管道中允许的内容时,该模板定义了另一个文件必须遵循的逻辑。

当您在 YAML 管道中使用扩展模板时,我们无法向 YAML 管道添加其他任务/作业。它支持在YAML根级别定义关键字。例如:触发器、变量。

基于不可变构建模板的最佳解决方案是什么,让我们在继承模板之前运行多个任务,其中模板作业始终首先执行?

为了满足您的需求,您可以更改为使用

- template
字段来使用YAML模板(包括模板)并同时定义作业。

例如:

模板是职位级别:

jobs:
- job: PreBuild
  timeoutInMinutes: 120
  pool:
    name: 'poolname'
    vmImage: 'windows'
    steps:
      - checkout: self
        clean: true
        persistCredentials: true
  .....

- template: template.yml@TemplateRepo
© www.soinside.com 2019 - 2024. All rights reserved.