-
-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: re-organize GitHub Actions #4600
base: master
Are you sure you want to change the base?
Conversation
75e88c6
to
991baf3
Compare
Which is a problem because of the LLVM apt repo now? - We've used that apt repo in the past, years ago, and it wasn't reliable IIRC - downtimes, as well as conflicts with the CI runner image from time to time [with whatever CI system we had back then, way before GitHub Actions came around]. The availability of binary LLVM packages from GitHub directly has always been a bit problematic, especially since we cannot use Ubuntu 22 due to debuginfo/gdb regressions (#4389). |
We can instead make a prebuilt Docker container image so that apt.llvm.org availability problem will be avoided. Since it's inside a container, it won't be influenced by the host system and can be easily migrated if another CI system is used in the future.
Has the issue been forwarded to the GDB upstream? If yes, was this issue fixed in a newer GDB release? |
I think that'd be a bit too much effort. :) - What we have usually done so far is wait a bit for the new LLVM major to mature; then almost every time around there was at least one usable GitHub artifact among the various patch releases. For the recent LLVM versions without Ubuntu 20 packages, we've used macOS arm64 ones as you've seen. I expect one to pop up soon for v18.1.x too. On rare occasions, we've been temporarily resorting to our LLVM fork and its artifacts. Those are normally only used for the The LLVM apt repo dependency aside, I'm not against a container-based approach in principle, but I definitely don't like the current duplication by splitting up the existing job into 2. There's probably a way to set something like
Not that I know of, mainly because it's not clear whether it isn't our fault. The same tests seem to pass with the DMD compiler on Ubuntu 22, using its default gdb version. |
I have already prepared a possible solution for making container images: https://github.com/liushuyu/ldc-build-environments.
If using prebuilt container images, we can merge the tasks back and skip all the setup steps for Linux. |
240389d
to
bf48024
Compare
This pull request re-organizes GitHub Actions, where Linux and macOS tasks are now split.
This is needed because the Linux build environment uses Docker containers to minimize the impact of GitHub Actions adding/removing PPAs from their host VM systems.
In addition, Linux build containers switch to LLVM's upstream APT archive instead of downloading the binary files from GitHub Release.
A LLVM 18.1 build job is also added to the build matrix to support #4599.