如何让 Azure Devops Pipelines 由 Prs 而不是由其他提交触发
How to have Azure Devops Pipelines triggered by Prs but not by other commits
我在 Azure DevOps Pipelines 中使用 yaml 管道,我看到它们有两个特定的触发键 trigger
和 pr
。
我想要设置它,以便在创建(或附加到)功能分支或错误修复分支上的 PR 时,我必须 运行 仅 运行 测试和安全检查一些管道,但是当他们只是推送到一个还没有 PR 的功能或错误修复分支时。
这是我的 pr
键:
pr:
branches:
include:
- bugfix/*
- feature/*
paths:
include:
- Source/Frontend/*
这是用于 运行 测试、linting 和覆盖率的 js 前端管道,因此我将其限制为仅更改包含前端代码的文件夹。
我应该如何设置 trigger
键才能实现上述目标?
我尝试通过在我的 yaml 文件中排除 trigger
键来将其保留为默认值,但这只会获取任何文件夹中的每个提交。我也试过 trigger: none
但这似乎完全阻止了它 运行ning。我也试过让 trigger
键与 pr
键相同,但是当我进行 PR 时,它没有被触发。
我已确保 Azure DevOps 中的触发器覆盖已关闭,因此它应该关闭 yaml 中的任何内容。
请参阅有关 pr
块的文档。它仅适用于 GitHub 回购。对于 Azure DevOps 存储库,使用分支策略来配置 PR 构建。
您想要 trigger: none
附带分支策略。
我测试了添加trigger: none
,可以防止管道被CI触发。
trigger: none
pr:
branches:
include:
- master
此外,您还可以告诉 Azure Pipelines 跳过 运行 提交通常会触发的管道。只需在提交消息或 HEAD 提交的描述中包含 [skip ci]
,Azure Pipelines 就会 skip running CI.
您可以使用以下任何变体:
[skip ci]
或 [ci skip]
skip-checks: true
或 skip-checks:true
[skip azurepipelines]
或 [azurepipelines skip]
[skip azpipelines]
或 [azpipelines skip]
[skip azp]
或 [azp skip]
***NO_CI***
原来我的问题有两个方面。
@Hugh Lin - MSFT 有点帮助,但阻止它工作的原因如下:
- 我认为 pr key 中包含的分支是 PR 的来源而不是合并到的地方,所以我将其从
bugfix/*
和 feature/*
更改为仅 develop
。
- pipeline yaml只存在于develop的分支中,不存在于develop分支中。
我在 Azure DevOps Pipelines 中使用 yaml 管道,我看到它们有两个特定的触发键 trigger
和 pr
。
我想要设置它,以便在创建(或附加到)功能分支或错误修复分支上的 PR 时,我必须 运行 仅 运行 测试和安全检查一些管道,但是当他们只是推送到一个还没有 PR 的功能或错误修复分支时。
这是我的 pr
键:
pr:
branches:
include:
- bugfix/*
- feature/*
paths:
include:
- Source/Frontend/*
这是用于 运行 测试、linting 和覆盖率的 js 前端管道,因此我将其限制为仅更改包含前端代码的文件夹。
我应该如何设置 trigger
键才能实现上述目标?
我尝试通过在我的 yaml 文件中排除 trigger
键来将其保留为默认值,但这只会获取任何文件夹中的每个提交。我也试过 trigger: none
但这似乎完全阻止了它 运行ning。我也试过让 trigger
键与 pr
键相同,但是当我进行 PR 时,它没有被触发。
我已确保 Azure DevOps 中的触发器覆盖已关闭,因此它应该关闭 yaml 中的任何内容。
请参阅有关 pr
块的文档。它仅适用于 GitHub 回购。对于 Azure DevOps 存储库,使用分支策略来配置 PR 构建。
您想要 trigger: none
附带分支策略。
我测试了添加trigger: none
,可以防止管道被CI触发。
trigger: none
pr:
branches:
include:
- master
此外,您还可以告诉 Azure Pipelines 跳过 运行 提交通常会触发的管道。只需在提交消息或 HEAD 提交的描述中包含 [skip ci]
,Azure Pipelines 就会 skip running CI.
您可以使用以下任何变体:
[skip ci]
或[ci skip]
skip-checks: true
或skip-checks:true
[skip azurepipelines]
或[azurepipelines skip]
[skip azpipelines]
或[azpipelines skip]
[skip azp]
或[azp skip]
***NO_CI***
原来我的问题有两个方面。
@Hugh Lin - MSFT 有点帮助,但阻止它工作的原因如下:
- 我认为 pr key 中包含的分支是 PR 的来源而不是合并到的地方,所以我将其从
bugfix/*
和feature/*
更改为仅develop
。 - pipeline yaml只存在于develop的分支中,不存在于develop分支中。