-
Notifications
You must be signed in to change notification settings - Fork 0
deployment
Douwe de Vries edited this page Jul 2, 2026
·
1 revision
Deployment for this repo means publishing the npm package and GitHub release assets. The process is encoded in .github/workflows/release.yml and guarded by local package scripts in package.json.
graph TD
Tag[Push v* tag] --> Checkout[Checkout repository]
Checkout --> Node[Set up Node 24 and npm 11]
Node --> Bun[Set up Bun 1.3.5]
Bun --> Install[bun install --frozen-lockfile]
Install --> Validate[Validate tag, package version, changelog, install pins]
Validate --> Check[bun run check]
Check --> Smoke[bun run package:smoke]
Smoke --> Pack[bun pm pack + sha256]
Pack --> Npm[npm publish]
Npm --> GitHub[Create or update GitHub release assets]
.github/workflows/ci.yml runs on pull requests, pushes to main, and manual dispatch. It includes:
- workflow syntax linting with
rhysd/actionlint:1.7.7, -
bun run checkon Ubuntu and macOS across Node 20, 22, and 24, - live OpenCode smoke on Ubuntu Node 22,
- non-blocking Windows validation while Windows support is being brought up.
The release job checks that:
- the tag name matches
package.jsonversion, -
CHANGELOG.mdhas a matching heading, -
README.mdanddocs/troubleshooting.mdinstall snippets pin the same version, -
bun run checkpasses, -
bun run package:smokepasses, - the packed tarball has a SHA-256 asset.
| File | Purpose |
|---|---|
.github/workflows/ci.yml |
Pull request and main-branch validation. |
.github/workflows/release.yml |
npm and GitHub release publishing. |
package.json |
Build, test, smoke, and package metadata. |
tests/package-smoke.test.ts |
Packed package contract. |
tests/live-opencode-smoke.test.ts |
Host integration smoke. |
Related pages: CLI and package, Testing, and Dependencies.