Run CI tests in wasm as well #115
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: CI | |
on: [push, pull_request] | |
jobs: | |
test: | |
name: Test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
rust: stable | |
- os: ubuntu-latest | |
rust: beta | |
- os: ubuntu-latest | |
rust: nightly | |
- os: macos-latest | |
rust: stable | |
- os: windows-latest | |
rust: stable | |
- os: ubuntu-latest | |
rust: stable | |
target: wasm32-wasip1 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: rustup update ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} | |
shell: bash | |
# Configure cross-builds by adding the rustup target and configuring future | |
# cargo invocations. | |
- run: | | |
rustup target add ${{ matrix.target }} | |
echo CARGO_BUILD_TARGET=${{ matrix.target }} >> $GITHUB_ENV | |
if: matrix.target != '' | |
# For wasm install wasmtime as a test runner and configure it with Cargo. | |
- name: Setup `wasmtime` | |
uses: bytecodealliance/actions/wasmtime/setup@v1 | |
if: matrix.target == 'wasm32-wasip1' | |
- run: echo CARGO_TARGET_WASM32_WASIP1_RUNNER=wasmtime >> $GITHUB_ENV | |
if: matrix.target == 'wasm32-wasip1' | |
- run: cargo test | |
- run: cargo test --features debug | |
- run: cargo test --features global | |
- run: cargo test --release | |
- run: cargo test --features debug --release | |
- run: RUSTFLAGS='--cfg test_lots' cargo test --release | |
shell: bash | |
- run: RUSTFLAGS='--cfg test_lots' cargo test --release --features debug | |
shell: bash | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: rustup update stable && rustup default stable && rustup component add rustfmt | |
- run: cargo fmt -- --check | |
wasm: | |
name: WebAssembly | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: rustup update stable && rustup default stable && rustup target add wasm32-unknown-unknown | |
- run: cargo build --target wasm32-unknown-unknown | |
- run: cargo build --target wasm32-unknown-unknown --release | |
external-platform: | |
name: external-platform | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: rustup update stable && rustup default stable && rustup target add x86_64-fortanix-unknown-sgx | |
- run: cargo build --target x86_64-fortanix-unknown-sgx | |
fuzz: | |
name: Build Fuzzers | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: rustup update nightly && rustup default nightly | |
- run: cargo install cargo-fuzz | |
- run: cargo fuzz build --dev | |
miri: | |
name: Miri | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Miri | |
run: | | |
rustup toolchain install nightly --component miri | |
rustup override set nightly | |
cargo miri setup | |
- name: Test with Miri Stack Borrows | |
run: cargo miri test | |
- name: Test with Miri Tree Borrows | |
run: cargo miri test | |
env: | |
MIRIFLAGS: -Zmiri-tree-borrows |