chore(release): 1.3.0 — sbt auto-mode default + install/CI fixes + re… #23
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: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| hook-tests: | |
| name: hook tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: install pytest | |
| run: pip install pytest | |
| - name: install jq (linux) | |
| if: matrix.os == 'ubuntu-latest' | |
| run: sudo apt-get update && sudo apt-get install -y jq | |
| - name: install jq (macos) | |
| if: matrix.os == 'macos-latest' | |
| run: brew install jq | |
| - name: run hook tests | |
| run: bash hooks/tests/run.sh | |
| harness-tests: | |
| name: harness + proxy smoke (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: run harness + proxy smoke tests | |
| run: node --test bin/tool-harness.test.js bin/tool-server-proxy.test.js | |
| fixture-probe: | |
| name: fixture probe (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: setup python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: install language servers | |
| run: | | |
| npm i -g pyright typescript-language-server typescript | |
| - name: install formatter tools (opt-in wrappers) | |
| run: | | |
| npm i -g prettier eslint | |
| - name: install jq (linux) | |
| if: matrix.os == 'ubuntu-latest' | |
| run: sudo apt-get update && sudo apt-get install -y jq | |
| - name: install jq (macos) | |
| if: matrix.os == 'macos-latest' | |
| run: brew install jq | |
| - name: install jdtls (macos) | |
| if: matrix.os == 'macos-latest' | |
| run: brew install jdtls | |
| - name: install wrapper symlinks into ~/.claude | |
| run: | | |
| mkdir -p ~/.claude | |
| ./scripts/install.sh | |
| - name: probe fixtures + diff baselines (shape-gate) | |
| # Body-sha check gated behind VERIFY_STRICT_SHA — CI runners install | |
| # the latest pyright/ts-ls/csharp-ls/jdtls, which can emit | |
| # version-specific serialization differences even when semantics | |
| # are identical. Shape (top_level + total_nodes counts) still | |
| # hard-fails on structural regressions; sha drift warns. | |
| run: bash scripts/verify.sh --diff-baselines | |
| opt-in-probe: | |
| name: opt-in wrapper smoke (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: setup python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: install jq (linux) | |
| if: matrix.os == 'ubuntu-latest' | |
| run: sudo apt-get update && sudo apt-get install -y jq | |
| - name: install jq (macos) | |
| if: matrix.os == 'macos-latest' | |
| run: brew install jq | |
| - name: install prettier + eslint | |
| run: npm i -g prettier eslint | |
| - name: install dotnet (macos) | |
| if: matrix.os == 'macos-latest' | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '9.0.x' | |
| - name: install dotnet (linux) | |
| if: matrix.os == 'ubuntu-latest' | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '9.0.x' | |
| - name: install sbt (macos) | |
| if: matrix.os == 'macos-latest' | |
| run: brew install sbt | |
| - name: install sbt (linux) | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| sudo mkdir -p /etc/apt/keyrings | |
| curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" \ | |
| | sudo gpg --dearmor -o /etc/apt/keyrings/sbt.gpg | |
| echo "deb [signed-by=/etc/apt/keyrings/sbt.gpg] https://repo.scala-sbt.org/scalasbt/debian all main" \ | |
| | sudo tee /etc/apt/sources.list.d/sbt.list | |
| sudo apt-get update | |
| sudo apt-get install -y sbt | |
| - name: install wrapper symlinks into ~/.claude | |
| run: | | |
| mkdir -p ~/.claude | |
| ./scripts/install.sh | |
| - name: smoke prettier-direct | |
| run: | | |
| bin/prettier-direct call format-file \ | |
| "{\"filepath\":\"$PWD/fixtures/node-formatter/hello.ts\"}" \ | |
| "$PWD/fixtures/node-formatter" | |
| - name: smoke eslint-direct | |
| run: | | |
| bin/eslint-direct call version '{}' "$PWD/fixtures/node-formatter" | |
| - name: smoke dotnet-direct | |
| run: | | |
| bin/dotnet-direct call version '{}' "$PWD/fixtures/dotnet-csproj" | |
| - name: smoke sbt-direct (non-fatal — sbt cold JVM may be slow on CI) | |
| continue-on-error: true | |
| run: | | |
| bin/sbt-direct call version '{}' "$PWD/fixtures/scala-sbt" |