Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Set up Docker test job to allow publishing release images (chapel-lan…
…g#26046) Refactor the Docker nightly testing script to optionally also push release-tagged images. Configured by the `RELEASE_VERSION` environment variable, assumed to get set via Jenkins parameter. If set, the script pushes the images tagged as `latest` and `$RELEASE_VERSION`. All nightly build/pushes still run before release-tagged pushes, so we don't push a release if any image variants are broken. Script aborts without building anything if `RELEASE_VERSION` is set but we're not on the appropriate release branch. As part of this PR I attempted to change our process to test the image before pushing, rather than build, push, then test. However, on `chapelmac-m1` this ran into docker/buildx#59, so I reverted it. Since we only push release images after all nightly images, we're still safe from pushing a broken release-tagged image. Noted this limitation and the requirement to build nightly images first in a comment. Also includes: - delete unused `util/cron/publish-docker-images.bash` which didn't contain as much functionality as `test-docker.bash` - more comments and some small refactors for clarity Resolves Cray/chapel-private#6743. [reviewed by @tzinsky , thanks!] Associated pre-merge tasks: - [x] merge corresponding CI config adjustments PR https://github.hpe.com/hpe/hpc-chapel-ci-config/pull/1291 - [x] disable unused previous job https://chapel-ci.us.cray.com/job/publish-docker-images/ - [x] update Docker release best-practices to tell you to use this script (https://github.hpe.com/hpe/hpc-chapel-docs/commit/d159f7e8a0be122660cd8af39e3b49ddb8b59486) - [x] delete temporarily private Docker repositories created for testing (`chapel-test{,-gasnet,-gasnet-smp}`) Testing: - [x] manual run in non-release mode still works - [x] manual run in release mode (temporarily modified to push to a scratch repo)