Use pre-built docker images for some actions. #627
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.
Summary
This PR changes a few actions to use pre-built docker images rather than building them inline. This improves reliability as building these images has an observed failure rate of about 0.5%, or about 10 times per day across the Paketo stacks.
It doesn't have any noticeable impact on performance as the download time is comparable to the time taken to build the image.
Background
The actions that have been changed are the ones that are used most commonly in the Stacks Poll USNs job, which runs on a schedule. We maintain seven stacks (Bionic Full, Base, Tiny and Jammy Full, Base, Tiny, Static), and each stack runs the Poll USNs job every 10 minutes. That means we run about 70 times per hour, or about 1700 times per day. We typically see about 10 failures per day, hence the 0.5% failure rate.
We have manually built and pushed these docker images to GitHub Container Registry - they can be seen on the packages page for the Paketo Buildpacks organization.
Future work
We should create a job that will build and push these images on a schedule. That can be done separately from this PR, however, as the images are not security-critical (they don't end up in any product or tool - they are just used in CI) so they can afford to be a little out of date.
Closes #625. See that issue for more context.
Checklist