Skip to content

ci(release): keep publishing canary packages after a failed publish#3387

Merged
cixzhang merged 1 commit into
facebook:mainfrom
arham766:ci/canary-publish-no-starve
Jul 2, 2026
Merged

ci(release): keep publishing canary packages after a failed publish#3387
cixzhang merged 1 commit into
facebook:mainfrom
arham766:ci/canary-publish-no-starve

Conversation

@arham766

@arham766 arham766 commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Addresses the workflow half of #3386. The canary publish loop aborts on the first failed pnpm publish, and lab sorts 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/lab itself on npm so its publish stops failing) needs @astryxdesign npm-org access and is not something this PR can do.

Test plan

  • Extracted the modified loop body into a local harness running against the real package layout with pnpm publish mocked to reject @astryxdesign/lab the 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.yml parses as valid YAML; both jobs (publish, canary) intact.
  • No behavior change for the stable publish job.

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.
@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

@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.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Jul 2, 2026
@cixzhang

cixzhang commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Thanks! I need to finish the lab update but things are moving much faster than expected. Appreciate the help

@cixzhang cixzhang merged commit 043f3fd into facebook:main Jul 2, 2026
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants