fix(log): selectable + untruncated rows, and show the full message/tr… #226
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: tests | |
| on: | |
| push: | |
| branches: [main, "spike/**"] | |
| pull_request: | |
| branches: [main] | |
| # CI runs three sequential jobs: lint → fast tests → integration tests. | |
| # | |
| # - The React SPA (packages/app/) IS built in the fast job: the SPA-serving | |
| # tests assert the real built index.html (#root div), so dist/ must exist | |
| # or create_app's catch-all returns 503. The embed bundle (packages/embed/) | |
| # is still NOT built — nothing serves it under test. | |
| # - Integration tests spawn the real buckaroo Tornado subprocess via | |
| # tallyman's BuckarooManager. buckaroo==0.14.6 is pinned in | |
| # pyproject.toml as a normal PyPI dep, so plain `uv sync` is enough. | |
| jobs: | |
| lint: | |
| name: ruff | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| - name: ruff check | |
| # uvx runs the latest ruff without polluting the project venv; | |
| # matches the local pre-push hook in ~/.claude/settings.json. | |
| run: uvx ruff check | |
| fast: | |
| name: fast suite (excludes integration) | |
| runs-on: ubuntu-latest | |
| needs: lint | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| # The SPA-serving tests hit create_app's catch-all, which reads | |
| # packages/app/dist/index.html. Build it here (pnpm 9 matches the | |
| # lockfileVersion 9.0) so those routes return the page, not a 503. | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| cache-dependency-path: packages/app/pnpm-lock.yaml | |
| - name: build React SPA | |
| run: pnpm -C packages/app install --frozen-lockfile && pnpm -C packages/app build | |
| - name: vitest (React unit) | |
| run: pnpm -C packages/app test | |
| - name: sync deps | |
| run: uv sync | |
| - name: pytest (fast) | |
| # Marker exclusions (integration, cache_lab) live in pyproject.toml's | |
| # addopts. Do NOT pass -m here: a command-line -m replaces the addopts | |
| # expression entirely (last -m wins), which is how the on-demand | |
| # cache_lab suite once leaked onto CI. | |
| run: uv run pytest | |
| integration: | |
| name: integration suite | |
| runs-on: ubuntu-latest | |
| needs: fast | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| - run: uv sync | |
| - run: uv run pytest -m integration |