Skip to content

Preserve release artifacts across workflow retries - #8

Merged
samuel-williams-shopify merged 2 commits into
mainfrom
fix-durable-release-recovery
Sep 21, 2026
Merged

samuel-williams-shopify merged 2 commits into
mainfrom
fix-durable-release-recovery

Conversation

@samuel-williams-shopify

Copy link
Copy Markdown
Contributor

The v0.0.3 upload succeeded, but immediate registry verification failed during propagation. A full workflow rerun then lost the Actions artifact, so the publisher could not restore the original bytes.

Preserve the verified gem, receipt and both attestation bundles as draft GitHub release assets before uploading to RubyGems. Recovery falls back to those assets when the Actions artifact is missing or expired. Publish the draft only after registry verification and tag creation; conflicting assets, source commits and tags still stop the release.

Retry absent registry data for up to one minute. Different gem bytes, conflicting attestations and other registry errors still fail immediately. Update the release guide and generated context to explain recovery and incomplete drafts. Existing runs execute their original code and require manual recovery; this change applies to subsequent releases.

Validation: 42 tests / 115 assertions pass, including a fresh workspace restoring after loss of the Actions artifact, interrupted finalization, failed preservation, incomplete/conflicting backups, and registry propagation. All 68 changed executable lines are covered. RuboCop and documentation coverage pass.

@samuel-williams-shopify
samuel-williams-shopify merged commit 023a1e9 into main Sep 21, 2026
11 checks passed
@samuel-williams-shopify
samuel-williams-shopify deleted the fix-durable-release-recovery branch September 21, 2026 10:14
Sign up for free to 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.

1 participant