mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
ci: Add riscv64 cross-build check
The previous CI (removed in #7760) built natively inside a riscv64 QEMU VM over SSH on a self-hosted host. That setup was disabled for chronic infrastructure flakiness (#7758). Reintroduce coverage deliberately minimal: cross-compile the cloud-hypervisor binary on a stock ubuntu-latest runner, and nothing more. - No integration tests: no riscv64 hardware needed. - No clippy: cross clippy with -D warnings currently trips on riscv64-gated lints that need a separate cleanup commit first. Cross-compiling needs only a riscv64 linker, not Docker/cross: the binary does not pull openssl-sys (that arrives via a dev-dependency of test_infra, unused by -p cloud-hypervisor), so no cross sysroot is required. Signed-off-by: Gauthier Jolly <contact@gjolly.fr>
This commit is contained in:
committed by
Rob Bradford
parent
67095b0da1
commit
5b3416adf4
30
.github/workflows/ci.yaml
vendored
30
.github/workflows/ci.yaml
vendored
@@ -510,6 +510,35 @@ jobs:
|
||||
run: cargo build --locked --all --release --target=${{ matrix.target }}
|
||||
- name: Check build did not modify any files
|
||||
run: test -z "$(git status --porcelain)"
|
||||
build-riscv64:
|
||||
name: build-riscv64
|
||||
needs: [preflight]
|
||||
if: needs.preflight.outputs.full == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
rust:
|
||||
- stable
|
||||
- "1.89.0" # MSRV — keep quoted.
|
||||
env:
|
||||
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER: riscv64-linux-gnu-gcc
|
||||
steps:
|
||||
- name: Code checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Install riscv64 cross linker
|
||||
run: sudo apt-get update && sudo apt-get install -y gcc-riscv64-linux-gnu
|
||||
- name: Install Rust toolchain (${{ matrix.rust }})
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: ${{ matrix.rust }}
|
||||
target: riscv64gc-unknown-linux-gnu
|
||||
- name: Build (kvm)
|
||||
run: cargo build --locked --package cloud-hypervisor --no-default-features --features "kvm" --target riscv64gc-unknown-linux-gnu
|
||||
- name: Check build did not modify any files
|
||||
run: test -z "$(git status --porcelain)"
|
||||
# garm-jammy + gnu: runs on PR and MQ. Other 3 matrix entries are in
|
||||
# integration-x86-64-mq (sibling, MQ-only, runs in parallel).
|
||||
integration-x86-64-pr:
|
||||
@@ -803,6 +832,7 @@ jobs:
|
||||
needs:
|
||||
- audit
|
||||
- build
|
||||
- build-riscv64
|
||||
- dco
|
||||
- formatting
|
||||
- fuzz-build
|
||||
|
||||
Reference in New Issue
Block a user