首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure Devops管道通过构建验证触发两次

Azure Devops管道通过构建验证触发两次
EN

Stack Overflow用户
提问于 2021-08-04 13:08:52
回答 3查看 1.5K关注 0票数 1

我在我的存储库中创建了一个管道,用于通过执行单元测试来验证代码,这些代码正被推送到features/*分支。同一管道用作在开发分支上作为分支策略设置的构建验证管道,以验证传入的PRs。这是管道的触发点。

代码语言:javascript
复制
# pipeline.yml
trigger:
  batch: false
  branches:
    include:
      - features/*

但是,我们遇到了以下条件:给定来自refs/heads/features/azure-pipelines -> refs/heads/develop的公开PR,我们将提交到features/azure-pipelines分支。

这将导致管道触发两次。据我理解,其中一个运行是由于管道的触发(屏幕截图中标记为单个CI的管道),第二个运行是因为分支策略试图验证代码被推送到开放的PR上进行开发。(公共关系自动化)

有什么方法可以禁用其中的一个执行,因为它本质上是一个复制?我可能在寻找一种方法来检索打开的PRs并中止对Individual CI管道的执行,如果分支有一个开放的PR,但我不确定这是最好的方法,我正在寻找选择。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-05 07:43:20

有什么方法可以禁用其中的一个执行,因为它本质上是一个复制?

正如我们所知道的,除非取消构建验证,否则我们不能禁用在开发分支上设置为分支策略的构建验证管道来验证传入的PRs。

对于您的情况,您可以尝试在提交消息或头提交的描述中包含[skip ci],以使Azure管道在计划将特性分支合并到开发分支时跳过运行CI。

您可以查看文档跳过个人提交的CI以获得更多细节。

票数 1
EN

Stack Overflow用户

发布于 2021-12-03 22:24:33

你可以

代码语言:javascript
复制
trigger: none

这样,只有分支策略才会触发管道。

票数 3
EN

Stack Overflow用户

发布于 2021-08-04 13:42:17

这取决于他们是否做同样的事情。您可以在管道中进行有条件检查,这对PR和CI运行有不同的作用。但是,我很确定这是不可能的,因为一个是在YAML上定义的,第二个是在Azure DevOps门户上定义的。因此,即使在YAML中删除PR触发器,分支策略仍然运行PR。并且您可以在YAML中指定antyhing来阻止分支策略。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68651822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档