Skip to content

deployment

Douwe de Vries edited this page Jul 2, 2026 · 1 revision

Deployment

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.

Release workflow

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]
Loading

CI workflow

.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 check on 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.

Release contract

The release job checks that:

  • the tag name matches package.json version,
  • CHANGELOG.md has a matching heading,
  • README.md and docs/troubleshooting.md install snippets pin the same version,
  • bun run check passes,
  • bun run package:smoke passes,
  • the packed tarball has a SHA-256 asset.

Key source files

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.

Clone this wiki locally