Add workflow for Clang 20 #60
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The pull requests adds an experimental workflow for Clang 20, currently the newest major release for Clang.
Clang 20 is not available on the
ubuntu-24.04
orubuntu-22.04
runner images provided by GitHub Actions, so the workflow uses the Docker image for the newer Ubuntu 25.04 release instead. Packages for Clang 20 are available there. The final release of Ubuntu 25.04 (codenamed "Plucky Puffin") is expected to occur on 2025-04-17, in approximately a month from now. However, according to its release schedule the feature freeze took place in February. That means no new packages are introduced after that and we can be sure that the clang-20 package currently available will also be available in the final release.This is a proof of concept to show that even compiler versions which are not directly/easily available on the existing GitHub Actions runner images can be run and used for builds and tests when using other Docker images, as previously mentioned here.
A bit of explanation for the workflow syntax:
container
option to specify the image for a Docker container to run the workflow steps in. So the partubuntu-latest
runner image (currentlyubuntu-24.04
), but within that runner it starts a Docker container using the Docker image specified in${{ matrix.image }}
- which isubuntu:25.04
in this case. See the matrix a few lines above.sudo apt-get install ...
to justapt-get install ...
, because there's nosudo
inside the Docker container.ubuntu:25.04
Docker image.export DEBIAN_FRONTEND=noninteractive
line is there to make sure that any potential interactive dialog choices during package updates and installation get skipped. The documentation says:Basically, that's all there is to it. Build and test commands are the same as for the "normal" Clang workflows.
If there are any more questions about the workflow, feel free to ask.