Skip to content

Add CI, website, and staged release workflows - #10

Merged
brainkim merged 3 commits into
mainfrom
ci-workflows
Oct 1, 2026
Merged

brainkim merged 3 commits into
mainfrom
ci-workflows

Conversation

@brainkim

@brainkim brainkim commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Ports the workflow setup from termdom to this repository.

Workflows

  • CI (ci.yml): on pushes to main and on pull requests. Typecheck and build both packages, run the unit suite, and run the Playwright e2e suite.
  • Website (website.yml): on every push to main, build the static site and publish it to gh-pages with the revise.js.org CNAME.
  • Release (release.yml): on a published GitHub Release, stage the package on npm with provenance behind the npm environment. The tag picks the package: v1.2.3 stages @b9g/revise from the root, crankeditable-v1.2.3 stages @b9g/crankeditable from packages/crankeditable. The tag is checked against the manifest version. The version goes live only when a person runs npm stage approve.

Supporting changes

  • libuild 0.1 → 0.2.25 in both packages. Staging needs 0.2. The new version writes builds to dist/ without the src/ subfolder, so the source manifests now point at ./dist/.... The published exports map is unchanged because libuild rewrites it in dist/package.json.
  • npm test was broken on main: the runner's default glob picked up e2e/demos.spec.ts and tried to bundle Node builtins for the browser. The script is now limited to test/**/*.ts.

Verified locally

Typecheck, 267 unit tests, 14 e2e tests, bun install --frozen-lockfile in the root, website/, and packages/crankeditable/, and libuild stage --dry-run for crankeditable, which reached the registry and stopped only because 0.1.0 already exists.

One-time setup before the first release

  • An npm environment in this repository with a required reviewer.
  • Stage-only trusted publishers on npm for @b9g/revise and @b9g/crankeditable, pointing at this repository and release.yml.

🤖 Generated with Claude Code

https://claude.ai/code/session_014qL2unrqdYFKeZTT8Ca5VS

brainkim and others added 3 commits October 1, 2026 01:29
CI typechecks, builds both packages, and runs the unit and e2e suites.
Pushes to main rebuild the website and publish it to gh-pages. Publishing
a GitHub Release stages a package on npm: a v* tag stages @b9g/revise and
a crankeditable-v* tag stages @b9g/crankeditable, and a person approves
the staged version with npm stage approve.

Staging needs libuild 0.2, which writes builds to dist/ without the src/
prefix, so the manifests now point there. The unit test script is limited
to test/ so the runner no longer tries to bundle the Playwright e2e spec.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014qL2unrqdYFKeZTT8Ca5VS
A clean checkout installed the published 0.1.0, which has no Editable
export, so the e2e fixtures failed to bundle on CI. Locally a hand-made
symlink hid this. The website now depends on the local package. Bun
copies file dependencies at install time, so the workflows build
crankeditable before installing the website.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014qL2unrqdYFKeZTT8Ca5VS
Meta+a only selects all on macOS, so the two select-all tests deleted a
single character on Linux runners.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014qL2unrqdYFKeZTT8Ca5VS
@brainkim
brainkim merged commit ce493fa into main Oct 1, 2026
3 checks passed
@brainkim
brainkim deleted the ci-workflows branch October 1, 2026 05:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant