Skip to content

fix: make OpenCode installs reliable on Windows #371

fix: make OpenCode installs reliable on Windows

fix: make OpenCode installs reliable on Windows #371

Workflow file for this run

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