是否可以克隆Azure管道? (用于开发人员的meta-yaml吗?)

时间:2020-04-11 20:01:31

标签: azure-devops azure-pipelines azure-devops-extensions

我有一个可以在不同的订阅,项目和客户端中重复使用的管道。它包含有关基础结构管道代码的各种最佳实践。

AzureDevops是否可以导出管道,相关的依赖项(资产),并且理想情况下允许在导入时进行参数化替换? (例如项目名称)

1 个答案:

答案 0 :(得分:1)

只能导出Azure DevOps中的经典(UI模式)管道。

对于yaml管道,其定义已经存在于代码文件(yml文件)中,这意味着可以随时重复使用它。

创建此yaml文件后,每次要重复使用它来创建新管道时,请依次单击New pipeline-Use the classic editor-Select a source-Choose YAML in Select a template-选择yaml文件路径。

但是,需要注意的一件事是,一旦您在新创建的管道中编辑了yaml文件,它将使用与定义相同的yaml文件影响其他管道,除非您将该文件下载并上传到其他banrches并创建那里有新的管道。

要解决此问题,Templates也是可以重复使用的yaml文件,并且接受可以“在导入时进行参数化替换”的参数,使用相同模板的不同yaml管道不会影响每个其他。

例如,模板包含一个参数:

# File: simple-param.yml
parameters:
- name: yesNo # name of the parameter; required
  type: boolean # data type of the parameter; required
  default: false

steps:
- script: echo ${{ parameters.yesNo }}

yaml管道使用此模板:

# File: azure-pipelines.yml
trigger:
- master

extends:
  template: simple-param.yml
  parameters:
      yesNo: false # set to a non-boolean value to have the build fail