ci: pin github-workflows at v0.16.0, where the pin takes effect - #34
Merged
Merged
Conversation
Until v0.15.2 the reusable workflows checked out their own action code with
ref: ${{ github.job_workflow_sha }}, which is empty inside a reusable
workflow, so actions/checkout fell back to the default branch. Every pin here
selected a workflow file while the scripts it ran always came from main. From
v0.15.2 the checkout uses a literal that release-please keeps in step with the
tag, so a pin finally determines the code that runs.
All pins move to v0.16.0 together. They had drifted to three different
versions, which mattered little while everything ran main and matters now.
Every reusable workflow interface involved is unchanged across the versions
being crossed -- same inputs, same required flags, same secrets -- so no
caller change is needed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Until
v0.15.2, the reusable workflows ingithub-workflowschecked out their own action code with:That context is empty inside a reusable workflow — confirmed by echoing it in a real run — so
actions/checkoutfell back to the default branch:Every pin in this repository selected a workflow file while the scripts it executed always came from
main. From v0.15.2 the checkout uses a literal that release-please keeps in step with the release tag (JorisJonkers-dev/github-workflows#98), so a pin finally determines the code that runs.Why all pins move together
They had drifted to three different versions across the service repos — v0.11.11, v0.12.0, v0.12.1 alongside v0.15.1. That divergence was invisible while everything ran
main; now that pinning works it would become real, and silently different behaviour per repo is exactly what this whole change is meant to end.Every reusable workflow interface being crossed was compared tag-by-tag against v0.16.0 —
container-publishfrom v0.11.11/v0.12.0/v0.12.1,publish-api-clientsfrom v0.12.1,deploy-artifactanddeploy-validatefrom v0.15.1 — and all are identical: same inputs, samerequiredflags, same secrets. No caller change needed.What v0.16.0 also brings
health.mandatory: falseas an explicit opt-out for workloads with no HTTP surfacegithub-workflows' own CI and release jobsVerification
./platform/render-local.shrun in all seven service repos against a nested context package: each derives checker0.16.0from these pins, renders five fragments, and passes its scorecard.