我可以有1个管道并动态地针对多个环境吗?

时间:2020-01-17 04:43:55

标签: azure-devops azure-pipelines devops

是否可以有1个流水线并动态地将级传递到流水线,而不是预先定义流水线中的级?我试图避免在不同阶段一遍又一遍地复制管道。

1 个答案:

答案 0 :(得分:0)

在不同阶段,我试图一遍又一遍地复制管道。

您可以在阶段中使用YAML文件中的Template,而不必在不同阶段中一遍又一遍地复制管道:

stages:
- stage: QA
  jobs:
  - job:
    steps:
    - template: ChildForTemplate.yml
      parameters:
        param1: $(Var1)


- stage: Test
  jobs:
  - job:
  - template: ChildForTemplate.yml
    parameters:
     param2: $(Var2)

但是这种方法仍然需要您预先定义管道中的阶段。

是否可能有1条流水线并动态地将阶段传递给 而不是预先定义管道中的阶段?

我们目前不支持此功能。

如果要完全动态地将阶段传递到管道,则需要将YAML设置为:

stages:
- stage: $(StageValue)
  jobs:
  - job:
    steps:
    - template: ChildForTemplate.yml
      parameters:
        param1: $(Var1)

但是,对于目标$ (StageValue)的值没有特定的规则,可能只有QAQATest,如果我们传递多个值,那么Yaml不会巧妙地启动不同阶段来执行管道。

希望这会有所帮助。