我有一个可以在不同的订阅,项目和客户端中重复使用的管道。它包含有关基础结构管道代码的各种最佳实践。
AzureDevops是否可以导出管道,相关的依赖项(资产),并且理想情况下允许在导入时进行参数化替换? (例如项目名称)
答案 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