Update release.py to support arch-specific executor images #6299
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.
This PR adds support for (1) decoupling the docker image pushes from release.py, allowing the version tagging and docker image pushes to run in separate jobs (we need separate jobs because they will execute on different runner architectures), and (2) tagging the executor docker image with a suffix based on CPU arch. These changes are all behind flags, so it should not affect our release workflow until we are ready to add the arm64 executor image.
With this support, we can refactor the
release.py
job into a job graph like:job1
just bump the version tagjob2
matrix=[arm64, amd64]
update docker images, just the executor image if on arm64job3
create a multi-platform docker manifest for the executor, which references the platform-specific images we pushed earlier. This can just be a few bash commands in arun
script, likedocker manifest create ...
,docker manifest annotate ...
,docker manifest push ...
.Related issues: N/A