fix(release): allow retrying partially uploaded installers - #1871
fix(release): allow retrying partially uploaded installers#1871debpalash wants to merge 4 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan provides up to 10 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughChangesRelease retry cleanup
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to Release retries now remove only the matching partially uploaded installer assets before rebuilding, preserving unrelated versions, targets, and manifests. No concrete current-head merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 6 | ❌ 3❌ Failed checks (3 warnings)
✅ Passed checks (6 passed)
Full details: Title checkExplanation The title uses the required Conventional Commit format with scope and accurately describes the release retry change, but it does not include an issue reference. The description also does not include one. Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 18 functions across 2 files. (3 skipped: 3 unsupported.) Full details: Local-First GuaranteeExplanation The retry path adds a required GitHub Releases cloud call. Resolution Remove the required remote inventory/deletion step and redesign retry asset handling so it uses local-only naming or versioning and needs no GitHub Releases API call or token. Verify that retries remain functional with network access disabled and reporting disabled.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Filename | Overview |
|---|---|
| .github/workflows/release.yml | Runs target-scoped release-asset cleanup before a retried Tauri upload. |
| scripts/clear-release-rerun-assets.py | Selects and deletes only installer assets matching the current version and target. |
| tests/test_release_rerun_assets.py | Covers asset matching, API failures, concurrent deletion, and stamped preview versions. |
| CHANGELOG.md | Adds the release-retry entry outside the repository-required Highlights list. |
| docs/RELEASING.md | Documents the supported workflow for retrying partially published builds. |
Reviews (2): Last reviewed commit: "test(release): isolate cleanup module in..." | Re-trigger Greptile
A release job can upload an installer and then fail later. Retrying that job previously failed with
ReleaseAsset already_existsbecause the version stayed the same. Main's Windows preview run 34018049439 reproduced this after its per-user MSI step failed.Retry runs now clear only the current version and target's installer assets before uploading. macOS retries also replace their own versionless updater archive. Other targets, versions, and manifests remain intact; permission and network failures stop the job.
Validation: 28 regression tests pass, including real mocked gh deletion calls, missing assets, failed API operations, sibling preservation, and stamped preview versions. Release recovery documentation updated.
Release retries now delete only the current version’s target installer assets before re-uploading, including the macOS versionless updater archive. This prevents
ReleaseAsset already_existsfailures while preserving other targets, versions, and manifests. Permission, network, or asset inventory failures stop the job and require review.