name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -Dwarnings
RUSTDOCFLAGS: -Dwarnings
RUST_BACKTRACE: 1
MSRV: 1.85.0
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: rustup show active-toolchain -v
- run: cargo build --all-targets --all-features
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: rustup toolchain install ${{ env.MSRV }} --profile minimal
- run: rustup override set ${{ env.MSRV }}
- run: rustup show active-toolchain -v
- run: cargo build
env:
RUSTFLAGS: ""
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: rustup show active-toolchain -v
- run: rustup component add rustfmt
- run: cargo fmt --version
- run: cargo fmt -- --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: rustup show active-toolchain -v
- run: rustup component add clippy
- run: cargo clippy --version
- run: cargo clippy --all-targets --all-features
- run: RUSTFLAGS="$RUSTFLAGS --cfg idr_ebr_loom" cargo clippy --all-targets --all-features
test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@cargo-llvm-cov
- run: rustup show active-toolchain -v
- run: cargo llvm-cov test --codecov --output-path codecov.json
- uses: codecov/codecov-action@v5
with:
flags: regular
files: codecov.json
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
loom:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@cargo-llvm-cov
- run: rustup show active-toolchain -v
- run: TEST_CMD_PREFIX='llvm-cov --codecov --output-path codecov.json' ./tests/loom.sh
- uses: codecov/codecov-action@v5
with:
flags: loom
files: codecov.json
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
miri:
needs: build
runs-on: ubuntu-latest
env:
MIRIFLAGS: -Zmiri-permissive-provenance
steps:
- uses: actions/checkout@v4
- run: rustup toolchain install nightly --component miri
- run: rustup override set nightly
- run: rustup show active-toolchain -v
- run: cargo miri setup
- run: cargo miri test
docs:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: rustup toolchain install nightly
- run: rustup override set nightly
- run: rustup show active-toolchain -v
- run: cargo doc --all-features