# App CI — the coworker Python suite, the GUI unit tests, and the hermetic # Playwright e2e suite (mocked /v1 + WS; no model or network needed). name: CI on: [push, pull_request] jobs: pytest: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install run: | python -m pip install --upgrade pip pip install -e ".[messaging,dev,bedrock]" - name: Test run: pytest tests -q gui-unit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: surfaces/gui/package-lock.json - name: npm ci working-directory: surfaces/gui run: npm ci - name: Unit tests working-directory: surfaces/gui run: npm test gui-e2e: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: surfaces/gui/package-lock.json - name: npm ci working-directory: surfaces/gui run: npm ci - name: Install Playwright browsers working-directory: surfaces/gui run: npx playwright install --with-deps chromium - name: e2e working-directory: surfaces/gui run: npm run e2e