feat(runtime-v2): Wave 3 — workspace manager, checkpoint gating, exec… #114
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 | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| # Layer 1: Cross-platform crate tests on Linux. | |
| # Linux-compatible crates: vz-cli, vz-stack, vz-runtime-contract, vz-linux-native. | |
| # macOS-only crates (vz, vz-sandbox, vz-oci, vz-guest-agent) are skipped. | |
| test-linux: | |
| name: Test (Linux) | |
| runs-on: ubuntu-latest | |
| env: | |
| # Crates that compile on Linux. Update when adding new cross-platform crates. | |
| LINUX_CRATES: "-p vz-cli -p vz-stack -p vz-runtime-contract -p vz-linux-native" | |
| # Cross-transport parity gate crates for Runtime V2 gRPC/OpenAPI checks. | |
| TRANSPORT_PARITY_CRATES: "-p vz-api -p vz-agent-proto -p vz-linux -p vz-guest-agent -p vz-runtime-contract" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Runtime V2 Benchmark Methodology Gate | |
| run: | | |
| DOC="docs/benchmarks/runtime-v2-methodology.md" | |
| test -f "$DOC" | |
| grep -q "## 1. Workload Classes" "$DOC" | |
| grep -q "## 2. Host Hardware and OS Versions" "$DOC" | |
| grep -q "## 4. Metrics and Distribution Summary" "$DOC" | |
| grep -q "p50" "$DOC" | |
| grep -q "p95" "$DOC" | |
| grep -q "p99" "$DOC" | |
| grep -q "## 5. Variance and Confidence" "$DOC" | |
| grep -q "## 7. Raw Artifacts and Reproduction" "$DOC" | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy, rustfmt | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: crates | |
| - name: Check formatting | |
| working-directory: crates | |
| run: cargo fmt --check --all | |
| - name: Check (Linux-compatible crates) | |
| working-directory: crates | |
| run: cargo check $LINUX_CRATES | |
| - name: Clippy (Linux-compatible crates) | |
| working-directory: crates | |
| run: cargo clippy $LINUX_CRATES -- -D warnings | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Test (Linux-compatible crates) | |
| working-directory: crates | |
| run: cargo nextest run $LINUX_CRATES | |
| - name: Runtime V2 Gate - State Machine / Idempotency / Checkpoint | |
| working-directory: crates | |
| run: cargo nextest run -p vz-runtime-contract | |
| - name: Runtime V2 Gate - Shim Mapping / Negative Paths | |
| working-directory: crates | |
| run: cargo nextest run -p vz-stack --test quality_gates | |
| - name: Transport Parity Gates (gRPC/OpenAPI) | |
| working-directory: crates | |
| run: cargo nextest run $TRANSPORT_PARITY_CRATES transport_parity | |
| # Layers 1-2: Full test suite on macOS ARM64 | |
| test-macos: | |
| name: Test (macOS ARM64) | |
| runs-on: macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy, rustfmt | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: crates | |
| - name: Check formatting | |
| working-directory: crates | |
| run: cargo fmt --check --all | |
| - name: Clippy | |
| working-directory: crates | |
| run: cargo clippy --workspace -- -D warnings | |
| - name: Build | |
| working-directory: crates | |
| run: cargo build --workspace | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Test | |
| working-directory: crates | |
| run: cargo nextest run --workspace | |
| - name: Ad-hoc sign and verify | |
| run: | | |
| ./scripts/sign-dev.sh --profile debug | |
| codesign --display --entitlements - crates/target/debug/vz 2>&1 || true | |
| # Runtime V2 backend conformance lanes. | |
| conformance-linux-backend: | |
| name: Conformance (Linux Backend) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: crates | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Linux backend conformance suite | |
| working-directory: crates | |
| run: cargo nextest run -p vz-stack --test backend_conformance backend_conformance_linux | |
| conformance-macos-backend: | |
| name: Conformance (macOS Backend) | |
| runs-on: macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: crates | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: macOS backend conformance suite | |
| working-directory: crates | |
| run: cargo nextest run -p vz-stack --test backend_conformance backend_conformance_macos | |
| conformance-cross-backend: | |
| name: Conformance (Cross-Backend Parity) | |
| runs-on: ubuntu-latest | |
| needs: [conformance-linux-backend, conformance-macos-backend] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: crates | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cross-backend conformance suite | |
| working-directory: crates | |
| run: | | |
| cargo nextest run -p vz-runtime-contract backend_adapter | |
| cargo nextest run -p vz-stack --test backend_conformance backend_conformance_cross_backend | |
| # Real VM sandbox E2E coverage is executed in `.github/workflows/vm-e2e.yml` | |
| # so local and CI runs share the same signed harness entrypoint. |