Service Mode Agent Support #133
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: E2E macOS (Virtualization.framework) | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| e2e-macos: | |
| name: E2E VZ (macOS Apple Silicon) | |
| runs-on: macos-14 | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # ---- System dependencies ---- | |
| - name: Cache musl-cross toolchain | |
| id: cache-musl | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| /opt/homebrew/Cellar/musl-cross | |
| /opt/homebrew/opt/musl-cross | |
| /opt/homebrew/bin/aarch64-linux-musl-* | |
| key: ${{ runner.os }}-musl-cross-1 | |
| - name: Install musl cross-compilation toolchain | |
| if: steps.cache-musl.outputs.cache-hit != 'true' | |
| run: | | |
| brew install filosottile/musl-cross/musl-cross | |
| - name: Relink musl-cross from cache | |
| if: steps.cache-musl.outputs.cache-hit == 'true' | |
| run: | | |
| brew link musl-cross 2>/dev/null || true | |
| - name: Verify musl-cross | |
| run: | | |
| which aarch64-linux-musl-gcc | |
| aarch64-linux-musl-gcc --version | |
| # ---- Rust toolchain ---- | |
| - name: Install Rust stable + aarch64 musl target | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: aarch64-unknown-linux-musl | |
| # ---- Cargo cache ---- | |
| - name: Cache cargo registry + build | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-e2e-vz-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-e2e-vz- | |
| # ---- Build test initramfs ---- | |
| - name: Build test initramfs (guest-agent + claudio) | |
| run: scripts/build_test_image.sh | |
| # ---- Download prebuilt arm64 Linux kernel ---- | |
| - name: Download arm64 Linux kernel | |
| run: | | |
| scripts/download_kernel.sh | |
| cp target/vmlinux-arm64 /tmp/void-box-kernel | |
| # ---- Run conformance tests ---- | |
| - name: Run conformance E2E tests | |
| env: | |
| VOID_BOX_KERNEL: /tmp/void-box-kernel | |
| VOID_BOX_INITRAMFS: /tmp/void-box-test-rootfs.cpio.gz | |
| run: | | |
| echo "Kernel: $VOID_BOX_KERNEL" | |
| echo "Initramfs: $VOID_BOX_INITRAMFS" | |
| ls -la "$VOID_BOX_KERNEL" | |
| ls -la "$VOID_BOX_INITRAMFS" | |
| # Run conformance tests (--ignored to include VM tests, sequential to avoid resource contention) | |
| cargo test --test conformance -- --ignored --test-threads=1 | |
| - name: Snapshot round-trip | |
| env: | |
| VOID_BOX_KERNEL: /tmp/void-box-kernel | |
| VOID_BOX_INITRAMFS: /tmp/void-box-test-rootfs.cpio.gz | |
| run: cargo test --release --test snapshot_vz_integration -- --ignored --test-threads=1 |