name: Rust
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v1
- name: Install Rust Unix
if: runner.os != 'Windows'
run: |
if rustup --version >/dev/null 2>&1; then
rustup update
else
curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable
echo ::add-path::$HOME/.cargo/bin
fi
- name: Install Valgrind
run: |
sudo apt-get install -y valgrind
- name: Install Miri
run: rustup +nightly component add miri
- name: Rust version
run: |
cargo --version
rustc --version
- name: Test
run: CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="valgrind" cargo test --features serde
- name: Test (Optimized)
run: CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="valgrind" cargo test --release --features serde
- name: Miri Test
run: cargo +nightly miri test --features serde
- name: Miri Test (Optimized)
run: cargo +nightly miri test --release --features serde