Skip to content

Commit

Permalink
Merge pull request #1142 from hermit-os/hermit-careful
Browse files Browse the repository at this point in the history
feat(xtask): add support for building with cargo-careful
  • Loading branch information
mkroening authored Apr 19, 2024
2 parents 6952f40 + 0c7022a commit 0d3c678
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
12 changes: 9 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ jobs:
run-hermit:
name: Run
runs-on: ubuntu-latest
env:
HERMIT_CAREFUL: ${{ matrix.hermit-careful }}
defaults:
run:
working-directory: kernel
Expand All @@ -130,6 +132,8 @@ jobs:
arch: [x86_64, aarch64, riscv64]
profile: [dev, release]
include:
- profile: dev
hermit-careful: 1
- arch: x86_64
packages: qemu-system-x86 libcap-ng-dev libseccomp-dev uftrace
flags: --features hermit/pci-ids
Expand Down Expand Up @@ -157,6 +161,7 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install ${{ matrix.packages }}
- uses: dtolnay/rust-toolchain@stable
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
Expand All @@ -181,9 +186,10 @@ jobs:
run: |
gh release download v1.4 --repo riscv-software-src/opensbi --pattern 'opensbi-*-rv-bin.tar.xz'
tar -xvf opensbi-*-rv-bin.tar.xz opensbi-1.4-rv-bin/share/opensbi/lp64/generic/firmware/fw_jump.bin
- name: Install virtiofsd
run: cargo install --locked virtiofsd
- run: cargo +stable install --locked virtiofsd
if: matrix.arch == 'x86_64'
- run: cargo +stable install cargo-careful
if: matrix.profile == 'dev'
- run: cargo xtask ci qemu --arch ${{ matrix.arch }} --profile ${{ matrix.profile }} ${{ matrix.flags }} --package hello_world
- run: cargo xtask ci qemu --arch ${{ matrix.arch }} --profile ${{ matrix.profile }} ${{ matrix.flags }} --package hello_world --no-default-features --microvm
if: matrix.arch == 'x86_64'
Expand Down Expand Up @@ -265,7 +271,7 @@ jobs:
./firecracker --version
- uses: dtolnay/rust-toolchain@stable
- run: cargo install uhyve
- run: cargo +stable install --locked uhyve
- uses: mkroening/rust-toolchain-toml@main
- uses: mkroening/rust-toolchain-toml@main
with:
Expand Down
9 changes: 8 additions & 1 deletion xtask/src/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,15 @@ impl Build {

self.cargo_build.artifact.arch.install_for_build()?;

let careful = match env::var_os("HERMIT_CAREFUL") {
Some(val) if val == "1" => &["careful"][..],
_ => &[],
};

eprintln!("Building kernel");
cmd!(sh, "cargo build")
cmd!(sh, "cargo")
.args(careful)
.arg("build")
.env("CARGO_ENCODED_RUSTFLAGS", self.cargo_encoded_rustflags()?)
.args(self.cargo_build.artifact.arch.cargo_args())
.args(self.cargo_build.cargo_build_args())
Expand Down

0 comments on commit 0d3c678

Please sign in to comment.