CI #177
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: | |
schedule: | |
# Run weekly to keep Rust toolchain changes fresh | |
- cron: '0 0 * * 1' | |
jobs: | |
multiple_toolchains: | |
name: Stable and Beta tasks | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- stable | |
- beta | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install ${{ matrix.rust }} toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
components: rustfmt | |
- name: Check formatting | |
run: cargo fmt --all --check | |
- name: Check check | |
env: | |
RUSTFLAGS: -D warnings | |
run: cargo check | |
- name: Run test suite | |
run: cargo test | |
- name: Check docs | |
env: | |
RUSTDOCFLAGS: -D warnings | |
run: cargo doc --no-deps --document-private-items | |
- name: Run loom tests | |
env: | |
RUSTFLAGS: --cfg loom | |
run: cargo test --release loom --features loom | |
# We use a healthy amount of unsafe, so run tests with Miri to check for UB | |
nightly_only: | |
name: Nightly tasks | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install nightly toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: miri | |
- name: Miri 64-bit LE | |
run: cargo miri test --target x86_64-unknown-linux-gnu | |
- name: Miri 64-bit BE | |
run: cargo miri test --target sparc64-unknown-linux-gnu | |
- name: Miri 32-bit LE | |
run: cargo miri test --target i686-unknown-linux-gnu |