ci(release): keep publishing canary packages after a failed publish#3387
Merged
Conversation
The canary loop aborted on the first failed pnpm publish, so when lab's OIDC publish was rejected (never bootstrapped on npm), all seven themes after it stopped receiving canaries. Collect failures and exit 1 after the loop instead: every failure still fails the job and is annotated, but one rejected package no longer starves the rest. Publishes are per-package and idempotent, so attempting the remainder is always safe.
|
@arham766 is attempting to deploy a commit to the Meta Open Source Team on Vercel. A member of the Team first needs to authorize it. |
cixzhang
approved these changes
Jul 2, 2026
Contributor
|
Thanks! I need to finish the lab update but things are moving much faster than expected. Appreciate the help |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses the workflow half of #3386. The canary publish loop aborts on the first failed
pnpm publish, andlabsorts before the themes, so since #3325 landed every push to main publishes build/cli/core and then dies at lab's rejected OIDC publish; all seven themes have not received a canary since.This keeps the loop going: each failed publish is annotated with
::error, failures are collected, and the job still exits 1 at the end. Nothing is|| true-swallowed; the original intent (a failed publish must fail the job) is preserved, it just no longer starves the packages after it. Publishes are per-package and idempotent (version-gated on the registry side), so attempting the remainder is always safe.The other half of #3386 (bootstrapping
@astryxdesign/labitself on npm so its publish stops failing) needs @astryxdesign npm-org access and is not something this PR can do.Test plan
pnpm publishmocked to reject@astryxdesign/labthe same way npm does. Before this change the loop stops at lab; with it, all seven themes are still attempted, the failure is annotated, and the script exits 1. Control run with no failures exits 0 and prints the same success line as before.release.ymlparses as valid YAML; both jobs (publish,canary) intact.publishjob.