Skip to content

ci(actions): bounded settle window on post-copy assertions - #300

Merged
robinnsc merged 2 commits into
mainfrom
ci/post-copy-settle
Aug 21, 2026
Merged

ci(actions): bounded settle window on post-copy assertions#300
robinnsc merged 2 commits into
mainfrom
ci/post-copy-settle

Conversation

@robinnsc

Copy link
Copy Markdown
Collaborator

What

Post-write assertions in promote-registry and copy-artifact now retry for up to ~30s (6 × 5s) before failing closed. State decisions — exists/absent classification, verify-before-tag — remain strict single probes; retrying those would reintroduce the fail-open class from the #283 review.

Why

Live failure on the v0.1.8 dev propagation (run 32514590435): the ECR signature copy's own log shows the manifest written, the immediate post-copy probe reported it missing, and the artifact was verifiably present minutes later (crane digest confirms it now) — ECR Public read-after-write lag, also observed manually during the v0.1.6 promotion. Because the action correctly signs-first, it died before copying the version tags, leaving ECR with a signature and no 0.1.8/latest.

Urgency: the postgres v0.1.8 propagate job (pending behind its publish approval) asserts the same way against ECR and would likely hit the identical failure.

Testing done

  • yaml.safe_load passes on both actions.
  • The recovery path after merge is itself the live verification: re-running the dev propagate takes the re-entry branches end to end (GHCR fully no-ops; ECR sees the existing signature, verifies it, and completes the version/latest copies under the settle window).

Checklist

  • Tests / fmt / clippy — not applicable, workflow-only change
  • Added or updated tests — the settle window is bounded and fails closed; decision probes deliberately unchanged
  • Breaking changes noted below

ADR / RFC: n/a — CI tooling only.

Breaking changes

None.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache License 2.0 and I agree to the Developer Certificate of Origin (DCO). See CONTRIBUTING.md for details.

ECR Public exhibits read-after-write lag: the v0.1.8 dev propagation's
signature copy visibly succeeded in its own log, the immediate
post-copy probe reported the tag missing, and the artifact was
present seconds later (also observed manually during the v0.1.6
promotion). Post-WRITE assertions in both composite actions now retry
for up to ~30s before failing closed; state DECISIONS (exists/absent,
verify-before-tag) remain strict single probes — retrying those would
reintroduce the fail-open class.
The first commit only carried copy-artifact — this is the action the
failing dev propagation actually runs. Same bounded post-write settle
(sig copy assertion + final verification loop); decision probes
unchanged.
@robinnsc
robinnsc added this pull request to the merge queueAug 21, 2026
Merged via the queue into main with commit e9c7a4cAug 21, 2026
16 of 17 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@robinnsc@LeeroyHannigan