Branch: refs/heads/main
Revision: d8ce7c2149d0c07d29e53814cfe0c84ad61ddc1d
Author: arifthpe
Link: Add a job to build Chapel Docker images by arifthpe · Pull Request #29232 · chapel-lang/chapel · GitHub
Log Message:
Add a job to build Chapel Docker images (#29232)
Add jobs that build the chapel, chapel-gasnet, and
chapel-gasnet-smp Docker images, and push nightly- and commit
SHA-tagged images to Docker Hub from main.
Details:
- Added to the Extended checks tier.
- Implemented as a separate reusable workflow,
docker-image-builds.yml, which gets called into. - Since the
chapel-gasnetandchapel-gasnet-smpimages depend on the
chapelimage, the base image is built first, followed by the two
gasnet*images concurrently. In my testing, the total time to build
them all is under an hour. - x86 and amd64 versions of each image are built separately, then merged
by a subsequent job into a multiarch image. This is more complicated
than just doing a multi-platform built with buildkit, but around 10x
faster due to not needing to virtualize. - The single-arch images are pushed to an ephemeral registry running in
the job (as pushing seems to be necessary to get amanifestfor a
single-arch image). - The resulting image is pushed to our Docker Hub if running on
main,
via the same condition as build-CI-container.
Future work:
- Add a release mode for this job.
[reviewer info placeholder]
Diff:
A .github/workflows/docker-image-builds.yml
M .github/workflows/extended-ci-checks.yml
https://github.com/chapel-lang/chapel/pull/29232.diff