Merge pull request #73 from spencerkit/changeset-release/main #302
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
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: ci-${{ github.event_name }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| verify: | |
| name: Lint, test, and build | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.33.2 | |
| run_install: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| cache: "pnpm" | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Validate changesets metadata | |
| run: pnpm changeset:validate | |
| - name: Run lint | |
| run: pnpm ci:lint | |
| - name: Run tests | |
| run: pnpm ci:test | |
| - name: Run production build | |
| run: pnpm ci:build | |
| windows-runtime-verify: | |
| name: Windows runtime verification | |
| runs-on: windows-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.33.2 | |
| run_install: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| cache: "pnpm" | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| # Windows CI now proves that our non-PTY subprocess paths pass `windowsHide: true` | |
| # and that provider/session PTY startup still works with the existing cross-platform | |
| # argv contract. It does not visually prove the absence of a transient desktop | |
| # console flash from node-pty itself; that still requires a manual smoke check on | |
| # a real Windows desktop. | |
| - name: Run targeted Windows provider tests | |
| run: pnpm --filter @coder-studio/providers exec vitest run src/claude/definition.test.ts src/codex/definition.test.ts | |
| - name: Run targeted Windows server tests | |
| run: pnpm --filter @coder-studio/server exec vitest run src/__tests__/provider-runtime/command-check.test.ts src/__tests__/provider-runtime/command-runner.test.ts src/__tests__/provider-runtime/install-manager.test.ts src/__tests__/workspace/runtime-check.test.ts src/git/cli.windows.test.ts src/supervisor/evaluator.windows.test.ts src/__tests__/server-provider-install-wiring.test.ts src/__tests__/session-commands.test.ts src/__tests__/session-integration.test.ts | |
| - name: Run targeted Windows CLI tests | |
| run: pnpm --filter @spencer-kit/coder-studio exec vitest run src/browser.test.ts src/bin.test.ts src/pm2-control.test.ts src/server-control.test.ts | |
| - name: Build web assets for CLI packaging | |
| run: pnpm build:web | |
| - name: Build server package | |
| run: pnpm --filter @coder-studio/server build | |
| - name: Build CLI package | |
| run: pnpm --filter @spencer-kit/coder-studio build |