Update rust.yml #599
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: Rust | |
on: | |
push: {} | |
pull_request: {} | |
jobs: | |
build_test: | |
runs-on: ${{ matrix.rust.os }} | |
strategy: | |
matrix: | |
rust: | |
# x86 without sse/sse2 on by default | |
- { target: i586-pc-windows-msvc, toolchain: "1.61", os: windows-latest } | |
- { target: i586-pc-windows-msvc, toolchain: stable, os: windows-latest } | |
- { target: i586-pc-windows-msvc, toolchain: beta, os: windows-latest } | |
- { target: i586-pc-windows-msvc, toolchain: nightly, os: windows-latest } | |
# x86 | |
- { target: i686-pc-windows-msvc, toolchain: "1.61", os: windows-latest } | |
- { target: i686-pc-windows-msvc, toolchain: stable, os: windows-latest } | |
- { target: i686-pc-windows-msvc, toolchain: beta, os: windows-latest } | |
- { target: i686-pc-windows-msvc, toolchain: nightly, os: windows-latest } | |
# x86_64 | |
- { target: x86_64-unknown-linux-gnu, toolchain: "1.61", os: ubuntu-latest } | |
- { target: x86_64-unknown-linux-gnu, toolchain: stable, os: ubuntu-latest } | |
- { target: x86_64-unknown-linux-gnu, toolchain: beta, os: ubuntu-latest } | |
- { target: x86_64-unknown-linux-gnu, toolchain: nightly, os: ubuntu-latest } | |
# aarch64 | |
- { target: aarch64-apple-darwin, toolchain: "1.61", os: macos-latest } | |
- { target: aarch64-apple-darwin, toolchain: stable, os: macos-latest } | |
- { target: aarch64-apple-darwin, toolchain: beta, os: macos-latest } | |
- { target: aarch64-apple-darwin, toolchain: nightly, os: macos-latest } | |
# wasm32 | |
- { target: wasm32-wasi, toolchain: "1.61", os: ubuntu-latest, wasmtime: v5.0.0 } | |
- { target: wasm32-wasi, toolchain: stable, os: ubuntu-latest, wasmtime: v5.0.0 } | |
- { target: wasm32-wasip1, toolchain: beta, os: ubuntu-latest, wasmtime: v5.0.0 } | |
- { target: wasm32-wasip1, toolchain: nightly, os: ubuntu-latest, wasmtime: v5.0.0 } | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust.toolchain }} | |
target: ${{ matrix.rust.target }} | |
- name: Install wasmtime | |
if: matrix.rust.target == 'wasm32-wasi' || matrix.rust.target == 'wasm32-wasip1' | |
run: | | |
curl https://wasmtime.dev/install.sh -sSf | bash -s -- --version ${{ matrix.rust.wasmtime }} | |
echo "$HOME/.wasmtime/bin" >> $GITHUB_PATH | |
- name: Build the crate | |
run: cargo build --target ${{ matrix.rust.target }} | |
- name: Test with default CPU features + No Default Cargo Features | |
env: | |
CARGO_TARGET_WASM32_WASI_RUNNER: wasmtime run --wasm-features all --dir . | |
run: cargo test --target ${{ matrix.rust.target }} --no-default-features | |
- name: Test with default CPU features + All Cargo Features | |
env: | |
CARGO_TARGET_WASM32_WASI_RUNNER: wasmtime run --wasm-features all --dir . | |
run: cargo test --target ${{ matrix.rust.target }} --all-features | |
- name: Build the crate with SSE4.1 (the "native" of CI will be above this) | |
if: matrix.rust.os == 'ubuntu-latest' && matrix.rust.target == 'x86_64-unknown-linux-gnu' | |
run: RUSTFLAGS="-Ctarget-feature=+sse4.1" cargo build --target ${{ matrix.rust.target }} | |
- name: switch over to native cpu features | |
run: mv .cargo-ci .cargo | |
- name: Test with 'native' CPU features + No Default Cargo Features | |
run: cargo test --target ${{ matrix.rust.target }} --no-default-features | |
- name: Test with 'native' CPU features + All Cargo Features | |
run: cargo test --target ${{ matrix.rust.target }} --all-features | |
cross_compile_aarch64: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: ["1.61", stable, nightly] | |
features: ["", "std"] | |
steps: | |
- name: Installing emulator and linker | |
run: | | |
sudo apt-get update | |
sudo apt-get install qemu binfmt-support qemu-user-static gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu | |
- name: Installing Rust toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
target: aarch64-unknown-linux-musl | |
- uses: actions/checkout@v4 | |
- name: build | |
run: > | |
cargo build --verbose --no-default-features --target aarch64-unknown-linux-musl --features "$FEATURES" | |
env: | |
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc | |
- name: test | |
run: > | |
cargo test --tests --benches --no-default-features --target aarch64-unknown-linux-musl --features "$FEATURES" | |
env: | |
FEATURES: ${{ matrix.features }} | |
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc |