Azure DevOps:如何在 YAML 模板管道上禁用 CI 触发器?
Azure DevOps : how to disable CI trigger on a YAML template pipeline?
在模板管道中,您不能放置任何触发器语句,例如 trigger: none
作为 specified 在 Microsoft 的 docs 中禁用 ci 触发器,所以我想知道如何防止每次更新这些管道或同一分支中的任何其他 yaml 文件时执行这些管道?
如果您想在不影响使用此模板的管道的情况下更新您的模板,请在单独的分支上进行更改,并在确定您拥有所需内容后将其合并到 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 在模板上进行更改,请在 git 消息中使用短语 [skip ci]
提交这些更改。查看 here 了解更多详情。
所以最后在模板管道中你不能声明像 trigger: none
这样的东西(只设置手动触发)并且你不能指定阶段或作业,只允许步骤(所以你不能定义任何条件以防止管道在作业或舞台上执行。
您可以选择禁用 CI 触发器,方法是进入模板管道的触发器部分和 select 以下内容:
我不太喜欢这个选项,因为它意味着在 yaml 管道定义中没有捕获管道配置,但我发现没有其他方法可以禁止模板管道在每次某些事情(包括管道本身)时被触发) 在其分支中更新。
管道 yaml 定义现在支持使用
禁用所有触发器
trigger: none
在模板管道中,您不能放置任何触发器语句,例如 trigger: none
作为 specified 在 Microsoft 的 docs 中禁用 ci 触发器,所以我想知道如何防止每次更新这些管道或同一分支中的任何其他 yaml 文件时执行这些管道?
如果您想在不影响使用此模板的管道的情况下更新您的模板,请在单独的分支上进行更改,并在确定您拥有所需内容后将其合并到 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 在模板上进行更改,请在 git 消息中使用短语 [skip ci]
提交这些更改。查看 here 了解更多详情。
所以最后在模板管道中你不能声明像 trigger: none
这样的东西(只设置手动触发)并且你不能指定阶段或作业,只允许步骤(所以你不能定义任何条件以防止管道在作业或舞台上执行。
您可以选择禁用 CI 触发器,方法是进入模板管道的触发器部分和 select 以下内容:
我不太喜欢这个选项,因为它意味着在 yaml 管道定义中没有捕获管道配置,但我发现没有其他方法可以禁止模板管道在每次某些事情(包括管道本身)时被触发) 在其分支中更新。
管道 yaml 定义现在支持使用
禁用所有触发器trigger: none