ci: fix attestation job never running on releases#116
Conversation
The attest job was always skipped on normal push releases because its `if:` lacked the `!failure() && !cancelled()` guard. When validate-inputs (only runs for manual dispatch) was skipped, the attest job cascaded to skipped regardless of release_created being true. Also decouple publish from attest — attestation failure should never block PyPI publishing. Remove continue-on-error from the core attest step so failures surface instead of being silently swallowed. Closes #107
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe release workflow is restructured to improve attestation reliability and decouple publishing from attestation completion. The attest job is gated with stricter conditions and error propagation, while the publish job is decoupled to run independently. ChangesRelease Workflow Orchestration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
attestjob'sif:condition — was missing!failure() && !cancelled(), causing the job to always be skipped whenvalidate-inputswas skipped (every normal push release)publishfromattest— attestation failure should not block PyPI publishingcontinue-on-error: truefromAttest Build Provenancestep so real failures surfaceRoot Cause
The
attestjob depended onvalidate-inputs(which only runs on manual dispatch). Without the status guard inif:, GitHub Actions skips any job whoseneedscontains a skipped job — regardless of whether the condition itself is true.This is why:
Test plan
workflow_dispatchwithforce_release)Closes #107
Summary by CodeRabbit