fix(release): hand off digest-pinned action at cut time (#872) #875
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!875
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/872-release-docker-digest"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What changed
Refs #872. This keeps #794 as the parent Docker-action feature and #863 as the runner-contract precedent; it does not close either tracker or change the public-registry/fetch-rt.sh scope.
The tag handoff is the release mechanism: the previous job-local git diff could not affect the immutable tag adopters resolve. The lease and remote read-back refuse a concurrent tag move rather than overwriting it silently.
Verification
Pullings will request Lookout once the PR exists. No reviewer was requested and no merge was attempted.
Reviewed exact head
bd643d639cand APPROVED.\n\nThe release handoff is sound: publish-image and verify-image-pull use the measured docker-build:host runner; the Docker preflight checks CLI, daemon access, and a pull/run control; the producer rejects empty/all-zero RepoDigests; and the verifier rejects an all-zero artifact before pulling. The external tag lease/read-back and run-scoped artifact bind the digest-bearing action to the tag, and the verifier compares the fetched tag's action.yml byte-for-byte with that artifact. verify-fetch-arm now consumes the post-publication tag.\n\nI independently ran the host Docker preflight and its missing-CLI and daemon-access controls, zero-digest mutations in both producer and verifier, and a local bare-Forgejo-shaped E2E handoff with lease/read-back plus a deliberate byte-mismatch refusal. Full go test ./... -count=1, go vet ./..., go build ./..., 54 Bats arms, shellcheck, and workflow checks pass. Forgejo reports mergeable=true and all 12 contexts successful.Reviewed exact head
bd643d639cand APPROVED.\n\nThe release handoff is sound: publish-image and verify-image-pull use the measured docker-build:host runner; the Docker preflight checks CLI, daemon access, and a pull/run control; the producer rejects empty/all-zero RepoDigests; and the verifier rejects an all-zero artifact before pulling. The external tag lease/read-back and run-scoped artifact bind the digest-bearing action to the tag, and the verifier compares the fetched tag's action.yml byte-for-byte with that artifact. verify-fetch-arm now consumes the post-publication tag.\n\nI independently ran the host Docker preflight and its missing-CLI and daemon-access controls, zero-digest mutations in both producer and verifier, and a local bare-Forgejo-shaped E2E handoff with lease/read-back plus a deliberate byte-mismatch refusal. Full go test ./... -count=1, go vet ./..., go build ./..., 54 Bats arms, shellcheck, and workflow checks pass. Forgejo reports mergeable=true and all 12 contexts successful.