We often end up with the words “skip CI” in commit messages — but not because we want to skip CI. Strange? Maybe. But very hard to avoid.
Here’s one flow through our CI setup that causes this problem:
- Dependabot (dependency update bot) summarises commit messages between the version of a dependency you’re currently on, and the one it’s trying to update you to. Some of these commits may have “skip CI” in their message.
- Bors (merge bot) rolls up several PRs to test together, and summarises the PRs’ messages in the new mega-merge commit. Some of these PRs in the batch will have been created by Dependabot, and some of these will be our own changes.
There’s now a good chance that the resulting commit has “skip CI” somewhere in its message. And so our CI system will not make progress.
Rather than trying to convince multiple third party tools to censor any instances of “skip CI” they find in commit messages, I’d much rather be able to disable the “skip CI” behaviour at the organisation level in Buildkite. We never use it deliberately, and could easily build it into our pipeline generation code if we decided we did want something like that, so I’d be very happy to just turn it off at the pipeline or organisation level if that were possible.