chore: bump to v2.10.0 (#338) #648
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] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| # Check that embedded files are in sync before other jobs | |
| # This catches packaging issues early (before they break cargo install) | |
| check-embedded-files: | |
| name: Check embedded files | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check embedded files are in sync | |
| run: ./scripts/sync-embedded-files.sh check | |
| # Format check: no compile needed, runs in seconds | |
| fmt: | |
| name: Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: ./scripts/ci-rust-gate.sh --skip-embedded-files --skip-clippy --skip-tests --skip-hooks-bdd --skip-mock-e2e | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| needs: check-embedded-files | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: sudo apt-get update && sudo apt-get install -y libdbus-1-dev pkg-config | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Run shared Rust CI gate | |
| run: ./scripts/ci-rust-gate.sh --skip-embedded-files --skip-format | |
| - name: Upload test artifacts | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-artifacts | |
| path: | | |
| .e2e-tests/report.md | |
| .artifacts/hooks-bdd/ | |
| if-no-files-found: warn | |
| retention-days: 30 | |
| # Clippy and Format checks also run in lint.yml on fork PRs | |
| # (pull_request_target, no secrets needed for fmt-only) | |
| web-tests: | |
| name: Web Tests | |
| runs-on: ubuntu-latest | |
| needs: check-embedded-files | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - run: npm ci | |
| - run: npm run build | |
| - run: npm run test:server | |
| - run: npm run test -w @ralph-web/dashboard | |
| # Hooks mutation testing is expensive (~20min). Run locally with: | |
| # ./scripts/hooks-mutation-gate.sh | |
| # Verify the crate can be packaged (catches include_str! issues) | |
| # Only runs on PRs - main pushes are either merges (already verified) or | |
| # version bumps (Release workflow handles publishing with correct deps) | |
| package-check: | |
| name: Package check | |
| runs-on: ubuntu-latest | |
| needs: [check-embedded-files, test] | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Check ralph-cli packages correctly | |
| run: | | |
| # This will fail if include_str! references files outside the crate | |
| # Use --list to validate without resolving crates.io dependencies | |
| cargo package -p ralph-cli --allow-dirty --list > /dev/null | |
| echo "Package check passed - all embedded files are included" |