tcpdump mailing list archives

Re: Selectively suppressing CI on some sites for a commit?


From: Guy Harris via tcpdump-workers <tcpdump-workers () lists tcpdump org>
Date: Thu, 6 Jan 2022 23:35:30 -0800

--- Begin Message --- From: Guy Harris <gharris () sonic net>
Date: Thu, 6 Jan 2022 23:35:30 -0800
On Jan 6, 2022, at 3:22 PM, Guy Harris via tcpdump-workers <tcpdump-workers () lists tcpdump org> wrote:

On Jan 6, 2022, at 3:00 PM, Denis Ovsienko via tcpdump-workers <tcpdump-workers () lists tcpdump org> wrote:

Do you think https://www.tcpdump.org/ci.html should document [skip cirrus] and [skip appveyor]?

[skip appveyor], possibly.

Cirrus documents that any of [skip ci], [ci skip], or [skip cirrus] in the first line of the commit message will 
suppress a CI build:

        https://cirrus-ci.org/guide/writing-tasks/

AppVeyor documents that any of [skip ci], [ci skip], or [skip appveyor] in the commit message title (first line, 
presumably) will suppress a CI build:

        https://www.appveyor.com/docs/how-to/filtering-commits/

It appears that a "GitHub skip hook" may have been first introduce in Buildbot 0.9.11:

        https://docs.buildbot.net/0.9.11/relnotes/index.html

with the hook being configurable by a regex match.  The 0.9.11 documentation of the "skips" parameter of the GitHub 
hook:

        https://docs.buildbot.net/0.9.11/manual/cfg-wwwhooks.html#chsrc-GitHub

does not say anything about the skip item having to be on the first line of the commit message; it does say that the 
default parameter is

        [r'\[ *skip *ci *\]', r'\[ *ci *skip *\]']

so either [skip ci] or [ci skip] (with arbitrary numbers of blanks thrown in after [, between the words, or before ]) 
should work.

OpenCSW's buildbot:

        https://buildfarm.opencsw.org/buildbot/

claims to be running Buildbot 0.8.14; from the tests I ran, it skips the build if [skip ci] is on the first line of the 
message, but not if it's after that line.  I don't know whether there was a "skip ci" feature in older versions, or if 
the OpenCSW people implemented it themselves, checking only the first line.

All the Buildbot instances we've set up appear to be running Buildbot 3.4.0, which appears to handle [skip ci] anywhere 
in the commit message.

With a test I did by doing commits adding or removing blank lines from CMakeLists.txt, and with various commit 
messages, it appears that:

        if the first line of the commit message ends with [skip ci], *all* CI builds are being suppressed (Cirrus, 
AppVeyor, OpenCSW, the buildbots we set up);

        if some *other* line of the commit message is [skip ci], our buildbots skip the build, but Cirrus CI, AppVeyor, 
and OpenCSW don't skip it;

which appears to agree with what's documented above plus the hypothesis that OpenCSW's buildbot supports [skip ci] on 
the first line only.

So:

        to suppress *all* builds, put [skip ci] on the first line;

        to suppress only AppVeyor builds (which currently means "do only UN*X builds"), put [skip appveyor] on the 
first line;

        to suppress only Cirrus builds (which means "skip x86-64 Linux, x86-64 macOS, and x86-64 FreeBSD", but that 
doesn't suppress ARM64 FreeBSD or non-x86-64 Linux, so I'm not sure how useful it is), put [skip cirrus] on the first 
line;

        to suppress only our buildbot builds, put [skip ci] somewhere *other* than the first line;

        to supporess any set of builders that's the union of the three lines above, do the items for the builders in 
question.

There does not seem to be a way to do *only* Windows builds.  Putting [skip cirrus] on the first line and [skip ci] 
elsewhere in the commit message is the closest to that, but it won't suppress the OpenCSW builds, meaning "only Windows 
and Solaris".

--- End Message ---
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers () lists tcpdump org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Current thread: