[libcxx-dev] Pre-commit CI with libc++

Louis Dionne via libcxx-dev libcxx-dev at lists.llvm.org
Tue Nov 24 10:29:27 PST 2020


Folks,

I am pleased to announce the move of libc++ to pre-commit CI. Over the past
few months, we have set up Buildkite jobs on top of the Phabricator
integration built by Mikhail and Christian, and we now run almost all of
the libc++ build bots whenever a Phabricator review is created. The bots
also run when a commit is pushed to the master branch, similarly to the
existing Buildbot setup. You can see the libc++ pipeline in action here:
https://buildkite.com/llvm-project/libcxx-ci.

This is great -- we’ve been waiting to set up pre-commit CI for a long
time, and we’ve seen a giant productivity gain since it’s up. I think
everyone who contributes to libc++ greatly benefits, seeing how reviews are
now used to trigger CI and improve our confidence in changes.

This change does have an impact on existing build bots that are not owned
by one of the libc++ maintainers. While I transferred the build bots that
we owned (which Eric had set up) to Buildkite, the remaining build bots
will have to be moved to Buildkite by their respective owners. These builds
bots are (owners in CC):

    libcxx-libcxxabi-x86_64-linux-debian

    libcxx-libcxxabi-x86_64-linux-debian-noexceptions

    libcxx-libcxxabi-libunwind-x86_64-linux-debian

    libcxx-libcxxabi-singlethreaded-x86_64-linux-debian

    libcxx-libcxxabi-libunwind-armv7-linux

    libcxx-libcxxabi-libunwind-armv8-linux

    libcxx-libcxxabi-libunwind-armv7-linux-noexceptions

    libcxx-libcxxabi-libunwind-armv8-linux-noexceptions

    libcxx-libcxxabi-libunwind-aarch64-linux

    libcxx-libcxxabi-libunwind-aarch64-linux-noexceptions

The process of moving these bots over to Buildkite is really easy. Please
take a look at the documentation at
https://libcxx.llvm.org/docs/AddingNewCIJobs.html#addingnewcijobs and
contact me if you need additional help.

To make sure we get the full benefits of pre-commit CI soon, I would like
to put a cutoff date on supporting the old libc++ builders at
http://lab.llvm.org:8011/builders. I would propose that after January 1st
2021 (approx. 1 month from now), the libc++ specific build bots at
lab.llvm.org be removed in favor of the Buildkite ones. If you currently
own a bot, please make sure to add an equivalent Buildkite bot by that
cutoff date to make sure your configuration is still supported, or let me
know if you need an extension.

Furthermore, with the ease of creating new CI jobs with this
infrastructure, we will consider any libc++ configuration not covered by a
pre-commit bot as not explicitly supported. It doesn’t mean that such
configurations won’t work -- it just means that we won’t be making bold
claims about supporting configurations we’re unable to actually test. So if
you care about a configuration, please open a discussion and let’s see how
we can make sure it's tested properly!

I am thrilled to be moving into the pre-commit CI era. The benefits we see
so far are huge, and we're loving it.

Thanks,

Louis

PS: This has nothing to do with a potential move or non-move to GitHub. The
current pre-commit CI works with Phabricator, and would work with GitHub if
we decided to switch. Let’s try to keep those discussions separate :-).

PPS: We’re still aiming to support non libc++ specific Buildbots. For
example, if something in libc++ breaks a Clang bot, we’ll still be
monitoring that. I’m just trying to move the libc++-specific configurations
to pre-commit.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libcxx-dev/attachments/20201124/016a353a/attachment.html>


More information about the libcxx-dev mailing list