Add CI, website, and staged release workflows - #10
Merged
Merged
Conversation
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
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.
Ports the workflow setup from termdom to this repository.
Workflows
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.yml): on every push to main, build the static site and publish it to gh-pages with the revise.js.org CNAME.release.yml): on a published GitHub Release, stage the package on npm with provenance behind thenpmenvironment. The tag picks the package:v1.2.3stages@b9g/revisefrom the root,crankeditable-v1.2.3stages@b9g/crankeditablefrompackages/crankeditable. The tag is checked against the manifest version. The version goes live only when a person runsnpm stage approve.Supporting changes
libuild0.1 → 0.2.25 in both packages. Staging needs 0.2. The new version writes builds todist/without thesrc/subfolder, so the source manifests now point at./dist/.... The published exports map is unchanged because libuild rewrites it indist/package.json.npm testwas broken on main: the runner's default glob picked upe2e/demos.spec.tsand tried to bundle Node builtins for the browser. The script is now limited totest/**/*.ts.Verified locally
Typecheck, 267 unit tests, 14 e2e tests,
bun install --frozen-lockfilein the root,website/, andpackages/crankeditable/, andlibuild stage --dry-runfor crankeditable, which reached the registry and stopped only because 0.1.0 already exists.One-time setup before the first release
npmenvironment in this repository with a required reviewer.@b9g/reviseand@b9g/crankeditable, pointing at this repository andrelease.yml.🤖 Generated with Claude Code
https://claude.ai/code/session_014qL2unrqdYFKeZTT8Ca5VS