name: Test
on:
push:
pull_request:
schedule:
- cron: '17 1 1 * *'
jobs:
cargo-fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: cargo fmt -- --check
cargo-clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: |
for FEATURES in $(python3.11 .ci/generate-feature-combos.py); do
echo $FEATURES
cargo clippy --all-targets --no-default-features --features="$FEATURES" -- -D warnings
done
cargo-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: |
for FEATURES in $(python3.11 .ci/generate-feature-combos.py); do
echo $FEATURES
cargo test --no-default-features --features="$FEATURES"
done
msrv-cargo-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Get minimum supported Rust version
run: echo "::set-output name=msrv::$(grep '^rust-version = ' Cargo.toml | grep -o '[0-9.]\+')"
id: get_msrv
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.get_msrv.outputs.msrv }}
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: |
for FEATURES in $(python3.11 .ci/generate-feature-combos.py); do
echo $FEATURES
cargo +${{ steps.get_msrv.outputs.msrv }} build --no-default-features --features="$FEATURES"
done
audit-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: cargo install cargo-audit
- run: cargo audit