Give CI bun — @celilo/cli refuses to run under node #5

Merged
forgejo-admin merged 1 commit from fix-ci-requires-bun into main 2026-08-04 00:08:58 +00:00

The first real release run (run 3) failed with:

Error: celilo requires bun. Install from https://bun.sh

mise.toml pinned node only, and the workflow drove the CLI with npx.

Why the earlier smoke test missed it

I dispatched a manual run before the merge and called it proof the runner worked. It was proof of that — the runner claimed the job and mise install succeeded. But both steps that invoke @celilo/cli are gated to github.event_name == 'push', so a workflow_dispatch run never reaches either one. The dispatch validated everything except the part that was broken.

Fix

mise.toml now pins bun = "1.3.3" alongside node = "25", and both CLI calls use bunx — matching lunacycle, whose .mise.toml pins bun for exactly this reason. node stays: it builds the site here and inside the module's build.command.

Verified locally that bunx @celilo/cli module check ./celilo-module drives the CLI cleanly (6 ok, 0 fail).

State on main is clean

The failed run changed nothing: manifest.yml is still at 0.2.0, the changeset is still pending, and no changeset-release/main branch was pushed. Merging this re-runs the version phase from the same starting point — it should stamp 0.2.0 → 0.3.0 and open the Version Packages PR.

🤖 Generated with Claude Code

The first real release run (run 3) failed with: ``` Error: celilo requires bun. Install from https://bun.sh ``` `mise.toml` pinned node only, and the workflow drove the CLI with `npx`. ## Why the earlier smoke test missed it I dispatched a manual run before the merge and called it proof the runner worked. It *was* proof of that — the runner claimed the job and `mise install` succeeded. But both steps that invoke `@celilo/cli` are gated to `github.event_name == 'push'`, so a `workflow_dispatch` run never reaches either one. The dispatch validated everything except the part that was broken. ## Fix `mise.toml` now pins `bun = "1.3.3"` alongside `node = "25"`, and both CLI calls use `bunx` — matching lunacycle, whose `.mise.toml` pins bun for exactly this reason. node stays: it builds the site here and inside the module's `build.command`. Verified locally that `bunx @celilo/cli module check ./celilo-module` drives the CLI cleanly (6 ok, 0 fail). ## State on main is clean The failed run changed nothing: `manifest.yml` is still at `0.2.0`, the changeset is still pending, and no `changeset-release/main` branch was pushed. Merging this re-runs the version phase from the same starting point — it should stamp **0.2.0 → 0.3.0** and open the Version Packages PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The first real release run failed with:

    Error: celilo requires bun. Install from https://bun.sh

mise.toml pinned node only, and the workflow drove the CLI with `npx`.
The manual dispatch that "proved" the runner passed because both steps
that invoke @celilo/cli are gated to push events, so neither ran.

mise.toml now pins bun 1.3.3 alongside node 25, and both CLI calls use
bunx (matching lunacycle). node stays: it builds the site, both here and
inside the module's build.command.

No changeset — this fixes unreleased pipeline work.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
celilo/tango-nexus!5
No description provided.