Skip to content

[pull] main from tldraw:main#560

Merged
pull[bot] merged 1 commit into
code:mainfrom
tldraw:main
May 26, 2026
Merged

[pull] main from tldraw:main#560
pull[bot] merged 1 commit into
code:mainfrom
tldraw:main

Conversation

@pull

@pull pull Bot commented May 26, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

In order to make npm OIDC trusted publishing work across all of our
publish flows, this PR consolidates every npm publish (canary,
branch/internal, patch, new, manual, and the `production` "next"
channel) into a single `publish.yml` workflow. Closes #8935.

npm trusted publishing matches the OIDC `job_workflow_ref` claim against
a single workflow filename configured per package. Because we previously
published the same packages from several different workflows, only one
of them could authenticate and the rest failed with `ENEEDAUTH`. Routing
every flow through one workflow file means they all authenticate against
the same trusted publisher.

### What changed

- Added `.github/workflows/publish.yml`, a single workflow that:
- Triggers on push to `main` (canary), `production` (next), and `v*.*.x`
branches (patch), on the `publish-packages` PR label (internal), and on
`workflow_dispatch` for `manual` and `new` releases.
- Determines the publish mode and per-flow settings (`bemo_url`, whether
to use the huppy app token) in a single "Determine publish mode" step,
with input validation for the manual and new flows.
- Runs the appropriate publish script (`publish-prerelease.ts`,
`publish-patch.ts`, `publish-manual.ts`, `publish-new.ts`) based on the
resolved mode.
- Declares `environment: npm deploy` so the environment-scoped secrets
(`R2_*`, `HUPPY_*`, `DISCORD_*`) resolve, and `id-token: write` for
OIDC.
- Preserves the per-flow orchestration that lived in the old workflows:
PR comment + label removal for internal publishes, the tldraw-desktop
dispatch for `next`, Discord failure notification, and the
`publish-templates.yml` follow-up job.
- Removed the per-flow workflows (`publish-branch.yml`,
`publish-canary.yml`, `publish-manual.yml`, `publish-new.yml`,
`publish-patch.yml`) and the reusable `publish-npm.yml`.
- Updated `RELEASES.md` to document the new single-workflow process
(publishing new releases from `production` via `publish.yml` with the
`new` publish type).

### Follow-up required (not in this PR)

- [x] On npmjs.com, each publishable package must have its trusted
publisher set to org `tldraw`, repo `tldraw`, workflow filename
`publish.yml`, environment `npm deploy`. Until that is done, publishing
continues to fail with `ENEEDAUTH`.

### Change type

- [x] `other` (CI/infra)

### Test plan

These workflows can only be fully exercised by a real publish, so
verification is staged:

1. Confirm the workflow parses (actionlint) — actionlint is not
installed in the local environment, so this should be checked in CI.
2. After merge, register the trusted publishers on npm against
`publish.yml`.
3. Verify a canary publish on push to `main` succeeds end to end.
4. Verify a branch/internal publish (via the `publish-packages` label)
succeeds and comments the version.

### Code changes

| Section        | LOC change  |
| -------------- | ----------- |
| Config/tooling | +261 / -371 |
@pull pull Bot locked and limited conversation to collaborators May 26, 2026
@pull pull Bot added the ⤵️ pull label May 26, 2026
@pull pull Bot had a problem deploying to bemo-canary May 26, 2026 15:13 Failure
@pull pull Bot merged commit 5e12c1a into code:main May 26, 2026
4 of 7 checks passed
@pull pull Bot had a problem deploying to bemo-canary May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to deploy-staging May 26, 2026 15:13 Error
@pull pull Bot had a problem deploying to vsce publish May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to npm deploy May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to deploy-staging May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to deploy-production May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to npm deploy May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to deploy-production May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to bemo-canary May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to vsce publish May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to deploy-staging May 26, 2026 15:13 Error
@pull pull Bot had a problem deploying to npm deploy May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to npm deploy May 26, 2026 15:13 Failure
@pull pull Bot had a problem deploying to deploy-staging May 26, 2026 15:13 Failure
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant