fix: make OpenCode installs reliable on Windows #371
Workflow file for this run
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: integration | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: integration-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lockfile: | |
| name: standalone lockfile | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Check standalone plugin lock | |
| run: | | |
| make check-locked-project-version | |
| make check-standalone-lock | |
| pytest: | |
| name: pytest suite | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Install Node test dependencies | |
| run: npm ci | |
| - name: Install test dependencies | |
| run: uv sync --project plugin --group dev --python 3.12 --locked | |
| - name: Run pytest suite | |
| run: uv --project plugin run pytest tests -q | |
| dependency-platforms: | |
| name: dependency platforms (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest] | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Check Python dependency lock | |
| shell: bash | |
| run: | | |
| if [ "$RUNNER_OS" = "macOS" ]; then | |
| if [ "$(uname -m)" != "arm64" ]; then | |
| echo "::warning::Skipping macOS runtime sync check because this runner is not Apple Silicon" | |
| exit 0 | |
| fi | |
| uv sync --project plugin --locked --dry-run --python 3.12 | |
| else | |
| uv sync --project plugin --locked --dry-run --python 3.12 --python-platform x86_64-pc-windows-msvc | |
| fi | |
| - name: Check dashboard build | |
| shell: bash | |
| run: | | |
| cd plugin/dashboard | |
| npm ci | |
| npm run build | |
| integration: | |
| name: integration (${{ matrix.os }}, node ${{ matrix.node }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| node: ['20', '22'] | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - uses: astral-sh/setup-uv@v3 | |
| - name: Install Claude Code CLI | |
| run: npm install -g @anthropic-ai/claude-code@stable | |
| - name: Run integration test | |
| env: | |
| # Plugin install is local-config only and shouldn't hit the API, | |
| # but a dummy key prevents a hang at any first-launch login prompt. | |
| # Real SessionStart-via-session testing would need a real key (see | |
| # tests/integration/NOTES.md). | |
| ANTHROPIC_API_KEY: dummy-for-plugin-install | |
| run: bash tests/integration/integration.sh all |