WIP soundness 4 #114
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: Build and test | |
on: [push, pull_request] | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_NET_GIT_FETCH_WITH_CLI: true | |
jobs: | |
build-base: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
toolchain: ["1.67", "stable"] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- name: Build without examples | |
run: cargo build --verbose | |
build-nightly: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
toolchain: ["1.67", "stable", "nightly-2023-02-24"] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- name: Build | |
run: cargo build --workspace --all-features --verbose | |
- name: Build examples | |
run: cargo build --workspace --all-features --examples --verbose | |
build-cross-aarch64: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
toolchain: ["1.67", "stable"] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
target: aarch64-unknown-linux-gnu | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: build | |
args: --target aarch64-unknown-linux-gnu --verbose | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
toolchain: ["1.67", "stable"] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- name: Run all tests | |
run: cargo test --verbose | |
test-all-features: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
toolchain: ["1.67", "stable", "nightly-2023-02-24"] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- name: Run all tests | |
run: cargo test --workspace --all-features --verbose | |
lint: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
features: ["--all-features", ""] | |
steps: | |
- uses: actions/checkout@v2 | |
- run: rustup component add clippy | |
- name: Check formatting | |
run: cargo fmt -- --check | |
- uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all-targets ${{ matrix.features }} | |
miri: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
toolchain: ["nightly-2023-02-24"] | |
seed: [1, 2, 3, 4, 5, 6, 7, 8] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- run: rustup component add miri | |
- name: Run miri | |
run: | | |
MIRIFLAGS="-Zmiri-seed=${{ matrix.seed }} -Zmiri-ignore-leaks -Zmiri-symbolic-alignment-check -Zmiri-retag-fields=all -Zmiri-symbolic-alignment-check -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-tree-borrows" cargo miri test | |
build-coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
path: 'mfio-repo' | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly-2023-02-24 | |
override: true | |
- run: cargo install grcov | |
- name: Run tests with coverage | |
run: | | |
cd mfio-repo | |
export CARGO_INCREMENTAL=0 | |
export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort" | |
export RUSTDOCFLAGS="-Cpanic=abort" | |
cargo build --workspace --exclude mfio-derive --all-features | |
cargo test --workspace --exclude mfio-derive --all-features | |
grcov ./target/debug/ -s . -t lcov --llvm --branch --ignore-not-existing -o ./target/debug/coverage | |
bash <(curl -s https://codecov.io/bash) -f ./target/debug/coverage -t ${{ secrets.CODECOV_TOKEN }}; | |