on: [push, pull_request]
name: Continuous integration
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- run: |
cargo check
test:
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
experimental: [false]
rust:
- stable
- nightly
args:
-
- --no-default-features
- --features loom_atomics
include:
- os: ubuntu-latest
rust: 1.34.0 experimental: true
- os: ubuntu-latest
rust: 1.45.0
experimental: true
- os: ubuntu-latest
rust: 1.50.0
experimental: true
- os: ubuntu-latest
rust: 1.60.0
experimental: true
- os: ubuntu-latest
rust: nightly
experimental: true
args:
- --all-features
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
- if: startsWith(matrix.rust, '1.45')
run: |
echo "CARGO_NET_GIT_FETCH_WITH_CLI=true" >> $GITHUB_ENV
- run: |
cargo test -v ${{ matrix.args }}
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt
- uses: actions-rust-lang/rustfmt@v1
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
- run: |
cargo clippy -- -D warnings
audit:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/audit@v1
name: Audit Rust Dependencies
with:
ignore: RUSTSEC-2020-0036