14

在模板管道中,您不能放置任何触发器语句,例如trigger: noneMicrosoft文档中指定的禁用 ci 触发器,所以我想知道您如何防止每次更新它们或同一分支中的任何其他 yaml 文件时执行这些管道?

4

3 回答 3

31

管道 yaml 定义现在支持禁用所有触发器

trigger: none

参考

于 2021-02-19T11:26:56.450 回答
8

所以最后在模板管道中你不能声明类似的东西trigger: none(只设置手动触发)并且你不能指定阶段或作业,只允许步骤(所以你不能定义任何条件来阻止作业上的管道执行或在舞台上)。

您可以通过进入模板管道的触发器部分并选择以下选项来禁用 CI 触发器:

在此处输入图像描述

我不太喜欢这个选项,因为它意味着管道配置未在 yaml 管道定义中捕获,但我发现没有其他方法可以禁用模板管道每次更新时触发模板管道(包括管道本身)分支。

于 2020-12-12T10:46:43.800 回答
0

如果您想在不影响使用此模板的管道的情况下更新模板,请在单独的分支上进行更改并将其合并到 master(或您使用的任何内容),一旦您确定您拥有所需的内容。

如果您使用来自不同仓库的模板,这同样适用:

# Repo: Contoso/WindowsProduct
# File: azure-pipelines.yml
resources:
  repositories:
    - repository: templates
      type: github
      name: Contoso/BuildTemplates
      ref: refs/tags/v1.0 # optional ref to pin to

jobs:
- template: common.yml@templates  # Template reference
  parameters:
    vmImage: 'vs2017-win2016'

默认情况下,您使用主分支中的模板,但您可以指向任何您想要的分支。因此,您还可以在有限的管道上测试您的更改,因为您需要直接指向您修改模板的分支。

假设你有那个分支:

master
|_ feature/add-extra-step

并且您在模板中进行了更改,但feature/add-extra-step通过添加额外的步骤来进行。

现在,当您触发使用该模板的管道时:

  • 触发器来自master- 您在模板中的附加步骤将不会运行
  • 触发器来自feature/add-extra-step- 您的附加步骤将运行

我在feature/extra-step分支上更改了模板:

在此处输入图像描述

当我在 master 上运行管道(甚至是相同的管道)时,这是不可用的更改:

在此处输入图像描述

例如,如果您不想触发 ci build 对模板进行更改,请[skip ci]在 git 消息中使用短语提交这些更改。在这里查看更多详情。

于 2020-12-11T10:15:55.773 回答