name: CI
on:
push: {}
pull_request: {}
schedule:
- cron: '0 16 * * *'
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
test:
runs-on: ${{ matrix.rust_os.os }}
strategy:
fail-fast: false
matrix:
rust_os:
- { rust: 1.66.0, os: ubuntu-22.04 }
- { rust: stable, os: ubuntu-22.04 }
- { rust: beta, os: ubuntu-22.04 }
- { rust: nightly, os: ubuntu-22.04 }
env:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
steps:
- uses: actions/checkout@v3
- name: Print git branch name
run: git rev-parse --abbrev-ref HEAD
- run: git show-ref | grep $(git rev-parse HEAD)
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust_os.rust }}
override: true
components: clippy, rustfmt
- name: Run tests
run: cargo test --tests --examples
- name: Doc tests
run: cargo test --doc
- name: Check fmt
if: ${{ matrix.rust_os.rust == '1.66.0' }}
run: cargo fmt --all -- --check
- name: Clippy
if: ${{ matrix.rust_os.rust == '1.66.0' }}
run: cargo clippy --all --all-features -- --deny warnings
- name: Audit
if: ${{ matrix.rust_os.rust == 'stable' }}
run: |
cargo install --force cargo-audit
cargo audit