ci(v3): publish artifacts before immutable releases - #5888
Conversation
WalkthroughNightly v3 releases now defer GitHub release creation until desktop artifacts are published. The workflow detects missing releases, dispatches and tracks Changesv3 release publication
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant NightlyReleaseV3
participant ReleaseTask
participant ReleaseV3Workflow
participant GitHubRelease
NightlyReleaseV3->>ReleaseTask: run with --defer-github-release
ReleaseTask->>NightlyReleaseV3: return tag and release notes
NightlyReleaseV3->>ReleaseV3Workflow: dispatch tag, notes, and orchestrator run
ReleaseV3Workflow->>GitHubRelease: publish release after artifacts
NightlyReleaseV3->>ReleaseV3Workflow: poll dispatched run
ReleaseV3Workflow->>NightlyReleaseV3: return publication status
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/nightly-release-v3.yml:
- Around line 71-83: Update publication_check to resolve the latest active v3
tag reachable from HEAD rather than relying only on steps.check_tag.outputs.tag,
then check that tag with gh release view and preserve needs_recovery output
behavior. Ensure the workflow still handles the existing tag gating and add a
regression case covering a bookkeeping-only commit after an unpublished tag.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 1e5706d2-a44b-4f9b-b7ad-e7a01ece2381
📒 Files selected for processing (5)
.github/workflows/nightly-release-v3.yml.github/workflows/release-v3.ymlv3/UNRELEASED_CHANGELOG.mdv3/tasks/release/release.gov3/tasks/release/release_test.go
|
Updated the branch in Publication recovery now:
Regression coverage creates a tagged commit, an unreachable higher active-series tag, and a following bookkeeping commit, then proves recovery still selects the reachable tag. Validation:
The installed CodeRabbit CLI no longer supports |
…e-release # Conflicts: # v3/UNRELEASED_CHANGELOG.md
|
Morning release-cycle refresh:
The PR is current and mergeable, with required maintainer review still outstanding. I also changed the description from |
|
Morning release-cycle handoff: refreshed this branch onto current Validation on the refreshed head: The in-window Nightly run 31117548329 failed before any workflow step because GitHub returned Service Unavailable while resolving action downloads after retries; that is external runner infrastructure and does not invalidate this workflow fix. |
Summary
Part of #5876
Root cause
The nightly release task published the GitHub release before dispatching Release v3. Repository release immutability then rejected Release v3's artifact upload with HTTP 422, even though all six binaries, checksums, and provenance had built successfully.
Impact
Future nightly releases are created atomically by Release v3 with their desktop binaries, SHA256SUMS, and provenance attached. A failed child publication now fails the orchestrator visibly and is retried when the tagged commit still has no release. Dry runs remain non-mutating, and direct/manual Release v3 dispatches retain their existing generated-notes fallback.
Validation
go test ./tasks/releaseactionlinton both workflows (only the pre-existingactions/setup-go@v4age diagnostic)git diff --checkgo test ./...attempted; blocked by missing GTK4/WebKitGTK/glib/libsoup development packages and existing GUI/path-sensitive tests in this environmentNo workflow, tag, or release was dispatched or published by this PR.
Summary by CodeRabbit