mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-08-21 07:21:15 +00:00
Rust 2021 edition has a few improvements over the 2018 edition. Migrate the project to 2021 edition by following recommended migration steps. Luckily, the code itself doesn't require fixing. Bump MSRV to 1.56 as it is required by the 2021 edition. Also fix the clap build dependency to make Cloud Hypervisor build again. Signed-off-by: Wei Liu <liuwe@microsoft.com>
64 lines
2.0 KiB
YAML
64 lines
2.0 KiB
YAML
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.56
|
|
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 features)
|
|
run: cargo rustc --bin cloud-hypervisor -- -D warnings
|
|
|
|
- name: Build (common + kvm)
|
|
run: cargo rustc --bin cloud-hypervisor --no-default-features --features "common,kvm" -- -D warnings
|
|
|
|
- name: Build (default features + tdx)
|
|
run: cargo rustc --bin cloud-hypervisor --features "tdx" -- -D warnings
|
|
|
|
- name: Build (default features + amx)
|
|
run: cargo rustc --bin cloud-hypervisor --features "amx" -- -D warnings
|
|
|
|
- name: Build (default features + gdb)
|
|
run: cargo rustc --bin cloud-hypervisor --features "gdb" -- -D warnings
|
|
|
|
- name: Build (common + mshv)
|
|
run: cargo rustc --bin cloud-hypervisor --no-default-features --features "common,mshv" -- -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)"
|