A place to hang Github workflow files to do our compiler builds.
- Python3
- curl
- jq
It's not recommended to change files through the github website.
Instead do following:
- Clone/fork this repo and make sure you have the requirements
- Add a compiler to
compilers.yaml - Run
make build-yamls(or let the pre-commit hook run this) - Commit
compilers.yamland the automatically generated files
If you build and administrate a branch of a compiler, then you can ask to be added to the "External Compiler Devs" team on GitHub. This will give you write permissions to this repo which will let you trigger your compiler's build and trigger an installation too. There's more mischief you could get up to too: so we will only add trusted, known accounts to this team.
Contact Matt directly by email, or on Discord to be added to the group.
- Head to https://github.com/compiler-explorer/compiler-workflows/actions
- Look for your build on the left hand pane. You may have to click "Show more workflows..." a few times
- Choose your build (you can bookmark this page for ease of return later)
- Choose "Run workflow" at the top right of the pane with prior builds
- If your build supports it, you'll see an "Install to Compiler Explorer after
a successful build" tickbox, on by default: leave it ticked and your compiler
will be installed on the live site as soon as the build succeeds — no further
steps needed. (No tickbox? Ask an admin to add an
install:entry for your compiler incompilers.yaml, or install by hand as below.) - Choose the green "Run workflow"
- After a pause of a few seconds your build should appear at the top of the list
- It may take a few minutes to get scheduled, but you should then be able to watch it build. If it builds quickly then check the output: we try not to build if we think there has been no changes. Check you pushed your compiler's changes if not, else contact the admins on Discord
- Ensure everything goes green. If you left the tickbox on, that includes the "install" job, and your compiler is then live: you're done. (A build we skipped as unchanged won't install.)
Builds with the install tickbox deploy themselves; this is for the rest, or for re-installing without waiting for a build.
- Head to https://github.com/compiler-explorer/compiler-workflows/actions/workflows/install-compilers.yml
- Click "Run workflow"
- Type in the build type and name, e.g.
clang hana-clang-trunk - For a nightly compiler (like that example), tick "Enable nightly builds" —
beware that this changes what a broad pattern like
gccmatches - If it's already installed and you want to reinstall, tick "Force install"
- Click "Run workflow"
- Check it completes OK and that the end of the output of the "install" / "install compilers" step looks something like:
2026-01-03 20:20:32,446 compilers/c++/nightly/clang hana-clang-trunk WARNING Not running on admin node - not saving compiler version info to AWS
2026-01-03 20:20:32,446 lib.ce_install INFO compilers/c++/nightly/clang hana-clang-trunk installed OK
Installing compilers/c++/nightly/clang hana-clang-trunk
1 packages installed OK, 0 skipped, and 0 failed installation
(the warning is fine, the version number shown in Compiler Explorer may not update until the next build, though I may fix this).
The new version should be immediately available on the live site.
You can script these, if you download and setup the gh Github tool. Then you can do something like:
gh workflow run -R compiler-explorer/compiler-workflows \
'Install compiler(s)' \
-f compilers='clang hana-clang-trunk' \
-f enable_nightly=true \
-f force=true
Where you can change the compilers= line appropriately.