Heading breadcrumb in StatusBar + STATUS.md refresh #51
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: | |
| permissions: | |
| contents: read | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| frontend: | |
| name: Frontend (typecheck + build) | |
| runs-on: macos-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: pnpm/action-setup@v5 | |
| with: | |
| version: 10 | |
| - uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - name: Install | |
| run: pnpm install --frozen-lockfile | |
| - name: Lint | |
| run: pnpm lint | |
| - name: Type-check | |
| run: pnpm tsc --noEmit | |
| - name: Build | |
| run: pnpm build | |
| - name: Run unit tests with coverage | |
| run: pnpm test:coverage | |
| if: hashFiles('vitest.config.ts') != '' | |
| - name: Upload coverage to Codecov | |
| if: hashFiles('coverage/lcov.info') != '' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: ./coverage/lcov.info | |
| flags: frontend | |
| fail_ci_if_error: false | |
| rust: | |
| name: Rust (build + test) | |
| runs-on: macos-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: pnpm/action-setup@v5 | |
| with: | |
| version: 10 | |
| - uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - name: Install frontend deps (needed for tauri build/dev resolution) | |
| run: pnpm install --frozen-lockfile | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: llvm-tools-preview | |
| - name: Cache cargo registry + target | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src-tauri | |
| - name: Install cargo-llvm-cov | |
| uses: taiki-e/install-action@cargo-llvm-cov | |
| # Unit + integration tests run in dev profile because the release | |
| # profile sets panic=abort, which is incompatible with test harnesses | |
| # that catch unwinds. Spike-0.3 bench is skipped in CI (run locally | |
| # via `pnpm bench:spike03`); it needs release-mode timings to be | |
| # meaningful and is too slow on macOS runners. | |
| - name: Cargo test with coverage | |
| working-directory: src-tauri | |
| run: cargo llvm-cov --lcov --output-path lcov.info | |
| - name: Upload Rust coverage to Codecov | |
| if: hashFiles('src-tauri/lcov.info') != '' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: ./src-tauri/lcov.info | |
| flags: rust | |
| fail_ci_if_error: false | |
| - name: Cargo build --release (verifies the binary links) | |
| working-directory: src-tauri | |
| run: cargo build --release |