Continuous integration
Continuous integration
Section titled “Continuous integration”The workflow in .github/workflows/ci.yml runs on pushes and pull requests.
It uses pnpm 11.14.0 and keeps the repository checks separate from the
release-time smoke scripts.
Runtime contract
Section titled “Runtime contract”The first verification-lane step is:
pnpm check:runtimeThis checks that the root and package manifests agree on the Node.js and pnpm
engines, that the root packageManager value matches the pinned pnpm version,
that the runtime documentation contains the declared versions, and that the CI
workflow contains the expected Node.js and pnpm contract. It does not install
dependencies or run tests.
Run it locally when changing runtime versions, manifests, the CI matrix, or the documentation covered by that contract.
Linux verification matrix
Section titled “Linux verification matrix”The verify job runs on ubuntu-latest for both Node.js 22.13.0 and Node.js
24. Each matrix entry installs dependencies with the lockfile and runs the
same checks:
- Build
@mauriciodmo/framekit. - Build
@mauriciodmo/create-framekit. - Run
pnpm lint. - Run
pnpm test. - Run
pnpm typecheck. - Run
pnpm build. - Dry-run packing for both public packages.
The root commands have these responsibilities:
| Command | CI purpose |
|---|---|
pnpm lint |
Run the recursive ESLint scripts for workspaces that define them. |
pnpm test |
Run the recursive Vitest scripts; this is not the Playwright E2E command. |
pnpm typecheck |
Run workspace TypeScript checks, including FrameKit’s compile-time type fixtures. |
pnpm build |
Run the workspace build scripts after the public package prerequisites have been built. |
The initial public-package builds are explicit because Studio and generated
consumer commands resolve built @mauriciodmo/framekit files.
Windows consumer lane
Section titled “Windows consumer lane”The windows-smoke-test job runs on windows-latest with Node.js 22.13.0.
It installs dependencies, builds the public package and creator, runs the
discovery/code-generation Vitest paths and creator tests, and runs
pnpm typecheck.
It then creates a consumer with the built creator, installs a locally packed
FrameKit tarball in that consumer, runs framekit generate and framekit check,
and verifies both package tarballs with pack --dry-run.
This is a focused Windows generated-consumer and packaging path. It is not a claim of a complete Windows production, browser, or visual test matrix.
Chromium E2E lane
Section titled “Chromium E2E lane”The chromium-e2e job runs on ubuntu-latest with Node.js 22.13.0. It:
pnpm install --frozen-lockfilepnpm exec playwright install --with-deps chromiumpnpm test:e2eThe Playwright web server builds FrameKit, builds Studio, and starts the production Studio server before the tests run. See E2E and smoke tests for the two current browser flows and their limits.
What CI does not run
Section titled “What CI does not run”The workflow does not run pnpm smoke:tarballs or
pnpm smoke:docker. The tarball smoke is a separate pre-publication artifact
check, and Docker smoke requires an exact published package version. CI also
does not add visual snapshots, clipboard export, or Firefox/WebKit gates.
Use the contributor workflow for focused local checks and the feature guide to decide when a change needs broader tests or distribution verification.