name: Cloud Hypervisor Build on: [pull_request, create] jobs: build: if: github.event_name == 'pull_request' name: Build runs-on: ubuntu-latest strategy: fail-fast: false matrix: rust: - stable - beta - nightly - 1.54 target: - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl steps: - name: Code checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Install musl-gcc run: sudo apt install -y musl-tools - name: Install Rust toolchain (${{ matrix.rust }}) uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} target: ${{ matrix.target }} override: true - name: Debug Check (default features) run: | git rev-list origin/main..$GITHUB_SHA | xargs -t -I % sh -c 'git checkout %; cargo check --all --target=${{ matrix.target }}' git checkout $GITHUB_SHA - name: Build (default + tdx) run: cargo rustc --bin cloud-hypervisor --features "tdx" -- -D warnings - name: Build (acpi,kvm) run: cargo rustc --bin cloud-hypervisor --no-default-features --features "acpi,kvm" -- -D warnings - name: Build (kvm) run: cargo rustc --bin cloud-hypervisor --no-default-features --features "kvm" -- -D warnings - name: Build (acpi,mshv) run: cargo rustc --bin cloud-hypervisor --no-default-features --features "acpi,mshv" -- -D warnings - name: Build (mshv) run: cargo rustc --bin cloud-hypervisor --no-default-features --features "mshv" -- -D warnings - name: Build (default + amx) run: cargo rustc --bin cloud-hypervisor --features "amx" -- -D warnings - name: Release Build (default features) run: cargo build --all --release --target=${{ matrix.target }} - name: Check build did not modify any files run: test -z "$(git status --porcelain)"