feat(dashboard): show observed model on learning details #528
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 | |
| # plugin/vendor/reflexio is a pack-time artifact and is gitignored, so a | |
| # fresh checkout has none. The install-flow tests need it: a tarball | |
| # without the vendored runtime installs a plugin whose backend cannot | |
| # start, which Setup now correctly rejects. Vendor the locked commit so | |
| # those tests exercise what users actually receive. | |
| - name: Vendor locked Reflexio (install-flow tests need the release bundle) | |
| run: | | |
| repo=$(python3 -c "import json;print(json.load(open('reflexio.lock.json'))['repo'])") | |
| commit=$(python3 -c "import json;print(json.load(open('reflexio.lock.json'))['commit'])") | |
| git clone --quiet "$repo" "$RUNNER_TEMP/reflexio-src" | |
| git -C "$RUNNER_TEMP/reflexio-src" checkout --quiet "$commit" | |
| python3 scripts/vendor-reflexio.py \ | |
| --reflexio-path "$RUNNER_TEMP/reflexio-src" --bundle-only --write | |
| - 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 |