feat(ui): React UI overhaul — plan + Milestone 1.1 foundation (WIP) #291
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| rust: | |
| name: Rust Operator | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: operator | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Cache cargo | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/bin/ | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| operator/target/ | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('operator/Cargo.toml') }} | |
| - name: Check formatting | |
| run: cargo fmt --check | |
| - name: Clippy linting | |
| run: cargo clippy -- -D warnings | |
| - name: Run tests | |
| run: cargo test | |
| python-investigator: | |
| name: Python Investigator | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: investigator | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install Poetry | |
| run: pip install poetry | |
| - name: Cache Poetry | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pypoetry | |
| key: ${{ runner.os }}-poetry-investigator-${{ hashFiles('investigator/pyproject.toml') }} | |
| - name: Install dependencies | |
| run: poetry install | |
| - name: Lint with ruff | |
| run: poetry run ruff check . | |
| - name: Run tests | |
| run: poetry run pytest | |
| python-ui: | |
| name: Python UI | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ui | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install Poetry | |
| run: pip install poetry | |
| - name: Cache Poetry | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pypoetry | |
| key: ${{ runner.os }}-poetry-ui-${{ hashFiles('ui/pyproject.toml') }} | |
| - name: Install dependencies | |
| run: poetry install | |
| - name: Lint with ruff | |
| run: poetry run ruff check . | |
| - name: Run tests | |
| run: poetry run pytest | |
| frontend-ui: | |
| name: Frontend UI | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ui/frontend | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24' | |
| cache: 'npm' | |
| cache-dependency-path: ui/frontend/package-lock.json | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Typecheck | |
| run: npm run typecheck | |
| - name: Build component library (dist-lib fixture for Vitest) | |
| run: npm run build:lib | |
| - name: Run unit/component tests (Vitest) | |
| run: npm test | |
| - name: Install Playwright browsers | |
| run: npx playwright install --with-deps chromium | |
| - name: Build app | |
| run: npm run build | |
| - name: Run e2e tests (Playwright) | |
| run: npm run e2e | |
| - name: Upload Playwright report | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report | |
| path: ui/frontend/playwright-report/ | |
| retention-days: 7 | |
| helm: | |
| name: Helm Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Helm | |
| uses: azure/setup-helm@v3 | |
| - name: Lint Helm chart | |
| run: helm lint ./helm/beeper | |
| demo-config: | |
| name: Demo Config | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install test deps | |
| run: pip install pytest pyyaml | |
| # Static validation of demo manifests + deployment/port-forward automation | |
| # (Task 6.1). No cluster needed; guards repeatability-critical config. | |
| - name: Validate demo config | |
| run: pytest demo/tests -q |