gpt4 book ai didi

当合并提交包含 [skip ci] 提交时,Azure DevOps Pipeline 不会触发

转载 作者:行者123 更新时间:2023-12-04 07:49:05 24 4
gpt4 key购买 nike

上下文

我们的管道触发器:

trigger:
branches:
include:
- develop
- master

pr:
- master

我们的管道根据某些条件进行操作,这些条件检查它所在的分支或触发管道的原因。

  • 提交开发触发器会提升版本,提交回开发、构建和工件
  • PR 触发部署接受
  • 提交到 master 会触发生产部署

为了不让开发分支触发本身,它会在提交消息中使用 [skip ci] 进行提交。

我已经验证,当我合并不包含任何 [skip ci] 提交的 PR 时,它可以正常工作。所以触发器本身是有效的。

<小时/>

问题

当我们将 PR 合并到 master 时,它根本不会触发 CI 触发器。在 azure devops 面板中它永远不会显示,表明它被忽略。

删除 [skip ci] 提交可以使这个问题消失,但会引入管道不断触发自身的问题。

我们的存储库位于 GitHub 中,这使我无法根据提交作者或其他内容手动过滤掉。

我有点困惑的是,合并提交(包含带有 [skip ci] 的旧提交)正在阻止触发器触发。

我是否误解了这里的预期行为?

我也愿意接受解决方法。

如果这个问题已经在某处得到解答,我深表歉意,但我找不到任何人遇到这个确切的问题。

<小时/>

提交日志

红色:合并的 PR 没有 [skip ci] 提交——这会正确触发 CI 主分支(请参阅带复选标记的下划线提交)

黄色:合并 [skip ci] 提交——这不会触发 CI 主分支(请参阅没有复选标记的下划线提交)

合并提交都不会包含比提交消息中的标题更多的内容。

GitHub Commit Log

<小时/>

Azure DevOps 管道日志

为了清楚起见,我标记了与 github 屏幕截图中相同的部分。正如您所看到的,黄色部分缺少 master 的单个 CI。

Azure DevOps Pipeline Log

最佳答案

我的猜测是合并提交会生成一条注释,列出所有包含的提交的所有提交消息。因此,合并的提交消息包含 [skip-ci]

我猜测处理此问题的理想方法是在合并之前编辑提交消息,或者确保您的skip-ci 标记位于原始提交消息的描述部分中。

This is the first.line of the commit
[skip-ci] < on the second line

这样它就会在合并提交消息中被省略。

关于当合并提交包含 [skip ci] 提交时,Azure DevOps Pipeline 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67074405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com