如何自动添加[skip ci]在git中的某个分支上提交消息

时间:2017-01-10 09:45:21

标签: git continuous-integration travis-ci

我正在开发一个根本不涉及任何源代码的分支,它只是有助于项目的文档。因此,浪费我的CI提供程序的CPU周期并堵塞队列是没有意义的。我知道我可以通过在提交消息中添加[skip ci]来实现这一点,但我总是忘记在提交时执行此操作。一段时间后,来自CI机器人的消息到来了,我再次忘记了自己。

当然必须有更好的方法!

我正在考虑使用Git钩子将[skip ci]添加到此分支上的任何提交消息。

我的问题是:

  1. 还有更好的前进方向吗?
  2. 当然,我不是第一个想要这样做的人。我不想重新发明轮子。是否有一些现有技术?
  3. 如果前两个问题的答案都是'不',你对编写实际的钩子有什么建议吗?
  4. 我正在使用Travis CI。

1 个答案:

答案 0 :(得分:2)

有一些方法可以自动将[skip ci]添加到您的提交消息中(请参阅例如this answer),但我认为这不是最佳解决方案。你说:

  

我正在开发一个根本不涉及任何源代码的分支,它只是有助于项目的文档。

因此,实际上没有必要永远触发此类分支上的任何构建。

specify which branches to build or not build很容易,但必须提前配置,并且必须知道要阻止哪些分支。

这两个问题的解决方案是everyone's favorite tool, regular expressions。将这样的内容添加到.travis.yml

branches:
  except:
    - /^feature\/docs\/.*$/

(另见the Travis CI docs。)

然后,只要您想编写文档,就创建一个以feature/docs/开头的分支,它将不会由Travis CI构建。