This will ensure that Clang changes get tested against libc++.
Details
- Reviewers
erichkeane aaron.ballman Mordante ldionne - Group Reviewers
Restricted Project - Commits
- rG038943834723: [libc++] Add a libc++ CI pipeline specific to Clang changes
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
This is a rough draft based on a discussion I had with @erichkeane over lunch today. This should provide customized jobs for testing Clang changes against libc++.
Thank you for working on this, I think this is going to be fantastic!!
libcxx/utils/ci/buildkite-pipeline-clang.yml | ||
---|---|---|
18 | Do we have/need something to keep this value from drifting away from the trunk version? | |
42 | Please excuse my utter ignorance of buildkite, but... this looks identical to the previous step with the only change being to the label (same for the rest of the entries). How does the CI know which version to test against? Does it pull that out of the label automatically or something? |
Thank you for doing this! I have no way of reviewing these, but I'm hopeful someone more knowledgeable will be able to.
I'm familiar with libc++'s Buildkite configuration so I'm happy to review, but I'll wait until it's ready for review.
Yeah no problem, this was mostly for awareness because we talked about it.
libcxx/utils/ci/buildkite-pipeline-clang.yml | ||
---|---|---|
18 | We do this manually every release when we bump the base compiler version we're using. This is a deliberate act and I think it's fine. I do agree it's a bit annoying to duplicate this here and in the other libc++ CI configuration. | |
42 | The answer is that all the jobs do the same thing as of this version of the patch. I just wanted to get something out real quick, I was sitting in EWG and wanted to make sure I didn't forget my conversation with @erichkeane. Actually, let's discuss which jobs you folks want. What configurations do you want to test? I would suggest:
That's probably enough, but I'd like to know what you and @erichkeane think about it. Oh and let's ping @mizvekov who has been needing these facilities too. |
Attempt 4/N. Sorry for the spam, this is going to keep going until I finally figure this out.
libcxx/utils/ci/buildkite-pipeline-clang.yml | ||
---|---|---|
18 | Okie dokie, that's fine by me, but we might someday want to script that so there's less risk of missing a spot to update. (Nothing to be done for this patch though!) | |
42 | Ah, okay, I wasn't stupid then, wahoo! :-D In terms of what configurations to test, I think the important ones are:
+++ ones past here are more questionable +++
We might want to combine some of these options together as well, so you can do C++latest + modules + Windows and C++latest + no modules + Linux, but I don't know that we need to try for testing the full combinatorial matrix. |
libcxx/utils/ci/buildkite-pipeline-clang.yml | ||
---|---|---|
42 | Sounds good, we'll have modules, C++03 and C++2b for the time being. I am not sure how to set it up for Windows but we can add it later. For other architectures, the problem is that our fast builders are all on Linux and using the same Docker image. Builders for other funky architectures are controlled by other folks and have less bandwidth, so I would not tackle that in this initial patch. |
libcxx/utils/ci/buildkite-pipeline-clang.yml | ||
---|---|---|
42 | SGTM, I think it's totally fine to roll this out incrementally. |
Remove temporary comments. This should be good to go now. I'll merge once the CI is green.
Once I merge, we can do a test Clang review to confirm that the right jobs are triggered. Also, I'd like to note that
we're using the libc++ CI resources right now. If this ends up taking too much resources away from libc++ CI, we'll have
to negotiate something because I don't want to starve our own pipeline.
Actually, CI's going to be green for sure since we are running the libc++ CI. I'll merge this.
Nice! Some nits. But I think we need to make sure that change to both Clang and libc++ still run the Clang CI.
libcxx/utils/ci/buildkite-pipeline-clang.yml | ||
---|---|---|
51 | Isn't it build by default? | |
84 | To avoid confusion with C++20 modules. | |
libcxx/utils/ci/generate-buildkite-pipeline | ||
17 | Note when there are changes to clang and libc++ this pipeline isn't executed. This might be an issue:
Should we instead have one build script and set environment variable which CI test should be executed? |
libcxx/utils/ci/buildkite-pipeline-clang.yml | ||
---|---|---|
51 | No, I don't think it is. | |
libcxx/utils/ci/generate-buildkite-pipeline | ||
17 | I agree. Trying something out in https://reviews.llvm.org/D138042. |
Do we have/need something to keep this value from drifting away from the trunk version?