ci: use VM to test BSD targets #152
Workflow file for this run
This file contains 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: No panic | |
on: | |
push: | |
branches: master | |
pull_request: | |
branches: master | |
permissions: | |
contents: read | |
defaults: | |
run: | |
working-directory: nopanic_check | |
env: | |
RUSTFLAGS: "-Dwarnings" | |
jobs: | |
linux: | |
name: Linux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
# We need Nightly for the rust-std component for wasm32-wasip2 | |
toolchain: nightly-2024-10-14 | |
targets: wasm32-wasip1, wasm32-wasip2 | |
- uses: Swatinem/rust-cache@v2 | |
- name: Build (linux_android_with_fallback.rs) | |
run: cargo build --release | |
- name: Check (linux_android_with_fallback.rs) | |
run: (exit $( grep -c panic target/release/libgetrandom_wrapper.so )) | |
- name: Build (linux_android.rs) | |
env: | |
RUSTFLAGS: -Dwarnings --cfg getrandom_backend="linux_getrandom" | |
run: cargo build --release | |
- name: Check (linux_android.rs) | |
run: (exit $( grep -c panic target/release/libgetrandom_wrapper.so )) | |
# TODO: re-enable after https://github.com/bytecodealliance/rustix/pull/1184 is released | |
# - name: Build (linux_rustix.rs) | |
# env: | |
# RUSTFLAGS: -Dwarnings --cfg getrandom_backend="linux_rustix" | |
# run: cargo build --release | |
# - name: Check (linux_rustix.rs) | |
# run: (exit $( grep -c panic target/release/libgetrandom_wrapper.so )) | |
- name: Build (rdrand.rs) | |
env: | |
RUSTFLAGS: -Dwarnings --cfg getrandom_backend="rdrand" | |
run: cargo build --release | |
- name: Check (rdrand.rs) | |
run: (exit $( grep -c panic target/release/libgetrandom_wrapper.so )) | |
- name: Build (custom.rs) | |
env: | |
RUSTFLAGS: -Dwarnings --cfg getrandom_backend="custom" | |
run: cargo build --release | |
- name: Check (custom.rs) | |
run: (exit $( grep -c panic target/release/libgetrandom_wrapper.so )) | |
- name: Build (wasi.rs, preview 1) | |
run: cargo build --release --target wasm32-wasip1 | |
- name: Check (wasi.rs, preview 1) | |
run: (exit $( grep -c panic target/wasm32-wasip1/release/getrandom_wrapper.wasm )) | |
- name: Build (wasi.rs, preview 2) | |
run: cargo build --release --target wasm32-wasip2 | |
- name: Check (wasi.rs, preview 2) | |
run: (exit $( grep -c panic target/wasm32-wasip2/release/getrandom_wrapper.wasm )) | |
cross: | |
name: Cross | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
components: rust-src | |
targets: aarch64-unknown-linux-gnu,x86_64-unknown-netbsd,x86_64-unknown-freebsd,x86_64-pc-solaris | |
- uses: Swatinem/rust-cache@v2 | |
# TODO: use pre-compiled cross after a new (post-0.2.5) release | |
- name: Install cross | |
run: cargo install cross --force --git https://github.com/cross-rs/cross | |
- name: Build (rndr.rs) | |
env: | |
RUSTFLAGS: -Dwarnings --cfg getrandom_backend="rndr" | |
run: cross build --release --target=aarch64-unknown-linux-gnu | |
- name: Check (rndr.rs) | |
run: (exit $( grep -c panic target/aarch64-unknown-linux-gnu/release/libgetrandom_wrapper.so )) | |
- name: Build (getrandom.rs) | |
run: cross build --release --target=x86_64-unknown-freebsd | |
- name: Check (getrandom.rs) | |
run: (exit $( grep -c panic target/x86_64-unknown-freebsd/release/libgetrandom_wrapper.so )) | |
- name: Build (netbsd.rs) | |
run: cross build --release --target=x86_64-unknown-netbsd | |
- name: Check (netbsd.rs) | |
run: (exit $( grep -c panic target/x86_64-unknown-netbsd/release/libgetrandom_wrapper.so )) | |
- name: Build (solaris.rs) | |
run: cross build --release --target=x86_64-pc-solaris | |
- name: Check (solaris.rs) | |
run: (exit $( grep -c panic target/x86_64-pc-solaris/release/libgetrandom_wrapper.so )) | |
macos: | |
name: macOS | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
targets: aarch64-apple-ios | |
- uses: Swatinem/rust-cache@v2 | |
# We do not need the grep check since linker fails | |
# if `panic_nonexistent` can not be eliminated | |
- name: Build (getentropy.rs) | |
run: cargo build --release --target=aarch64-apple-darwin | |
- name: Build (apple-other.rs) | |
run: cargo build --release --target=aarch64-apple-ios | |
windows: | |
name: Windows | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly-2024-10-14 | |
components: rust-src | |
- run: cargo build --release | |
- run: cargo build --release --target=x86_64-win7-windows-msvc -Zbuild-std="std,panic_abort" |