Skip to content

ci(release): skip updater metadata collection on dev builds - #1693

Merged
Astro-Han merged 1 commit into
mainfrom
fix/release-dev-metadata-guard
Sep 24, 2026
Merged

Astro-Han merged 1 commit into
mainfrom
fix/release-dev-metadata-guard

Conversation

@Astro-Han

@Astro-Han Astro-Han commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Collect updater metadata now runs under the same condition as Finalize updater metadata, which already skipped the dev channel.
  • The release workflow contract test asserts the two conditions are identical.

Why

Dev-channel builds have no publish target and never write latest-v2-mac.yml. A dev macOS finalize (run 36047988335) passed notarization (Accepted, stapled) and Verify notarized artifacts, then failed at cp: dist/latest-v2-mac.yml: No such file or directory. The failure also skipped cleanup-snapshot-tag, leaving the workflow snapshot tag behind (deleted by hand).

The collected directory is consumed only by the finalize step, so nothing on prod or beta changes.

Verification

  • vitest run scripts/release-workflow-contract.test.ts: 10 passed; with the workflow change reverted, the new assertion fails.

Summary by CodeRabbit

  • Bug Fixes
    • Dev-channel releases no longer collect updater metadata, while other eligible release runs continue to do so.

Dev builds have no publish target and never write latest-v2-mac.yml, so a
dev finalize failed at the copy after notarization and verification had
already passed, which also skipped the snapshot-tag cleanup. Collection
now runs under the same condition as the finalize step that consumes it,
and the workflow contract test pins the two conditions together.
@Astro-Han Astro-Han added the ci Continuous integration / GitHub Actions label Sep 24, 2026
@github-actions github-actions Bot added platform Electron shell, OS integration, packaging, updater, signing, paths, and permissions P2 Medium priority labels Sep 24, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested priority: P2 (includes non-doc, non-test paths outside the low-risk bucket).

P1/P0 are reserved for maintainer confirmation. Please relabel manually if this is a release blocker, security issue, data-loss risk, or updater/runtime failure.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can choose which labels appear on a finding, and whether they show icons or text

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Skip updater metadata collection for dev releases

🐞 Bug fix 🧪 Tests ⚙️ Configuration changes 🕐 Less than 10 minutes

Grey Divider

AI Description

• Prevent dev releases from collecting updater metadata that is never generated.
• Align metadata collection and finalization conditions across release targets.
• Add a workflow contract test preventing future condition drift.
Diagram

graph TD
  A["Release target"] --> B{"Metadata eligible?"}
  B -- Yes --> C["Collect metadata"] --> D["Finalize metadata"]
  B -- No --> E["Skip metadata"]
Loading
High-Level Assessment

Using the finalizer’s existing eligibility condition for collection is the best approach because the collected directory has no other consumer. Silently ignoring a missing metadata file would conceal unexpected production or beta packaging failures rather than enforce the producer-consumer contract.

Files changed (2) +3 / -1

Bug fix (1) +1 / -1
build.ymlExclude dev builds from updater metadata collection +1/-1

Exclude dev builds from updater metadata collection

• Adds the non-dev channel guard already used by updater metadata finalization. Dev builds no longer attempt to copy an updater metadata file they do not generate.

.github/workflows/build.yml

Tests (1) +2 / -0
release-workflow-contract.test.tsPin collection and finalization conditions together +2/-0

Pin collection and finalization conditions together

• Asserts that updater metadata collection and finalization use identical workflow conditions, preventing future eligibility drift.

packages/desktop-electron/scripts/release-workflow-contract.test.ts

@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: Astro-Han/pawwork/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 02fce0fd-a7b4-4772-b11a-010a139589ce

📥 Commits

Reviewing files that changed from the base of the PR and between 4c4e48b and 9597080.

📒 Files selected for processing (2)
  • .github/workflows/build.yml
  • packages/desktop-electron/scripts/release-workflow-contract.test.ts

Included review availability: Your plan provides up to 2 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The updater metadata collection step now skips dev-channel runs. A contract test checks that the collection and finalization steps use the same workflow condition.

Changes

Updater metadata workflow

Layer / File(s) Summary
Workflow condition and contract test
.github/workflows/build.yml, packages/desktop-electron/scripts/release-workflow-contract.test.ts
The collection step adds a non-dev channel requirement. The contract test checks that the collection and finalization conditions match.

Estimated code review effort: 2 (Simple) | ~5 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 95970

Dev builds skip metadata collection and finalization together, with no downstream dev step relying on the collected data. No actionable merge risk is evident from the reviewed changes.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main workflow change: skipping updater metadata collection on dev builds.
Description check ✅ Passed The description explains the change, reason, and verification result. It uses “Verification” instead of the template heading “How To Verify” and omits the required “Risk” section, but it remains mostl…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Astro-Han Astro-Han added the bug Something isn't working label Sep 24, 2026
@Astro-Han
Astro-Han merged commit 868e807 into main Sep 24, 2026
13 of 16 checks passed
@Astro-Han
Astro-Han deleted the fix/release-dev-metadata-guard branch September 24, 2026 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ci Continuous integration / GitHub Actions P2 Medium priority platform Electron shell, OS integration, packaging, updater, signing, paths, and permissions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant