name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
rust: [ stable, nightly ]
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
id: toolchain
with:
toolchain: ${{ matrix.rust }}
components: rustfmt, clippy
- name: clippy
if: matrix.os == 'ubuntu-latest' && matrix.rust == 'stable'
run: cargo clippy -- -D warnings
- name: cache cargo binaries
id: cache
uses: actions/cache@v3
with:
path: "/usr/share/rust/.cargo"
key: ${{ runner.os }}-cargo-bins-${{ env.GITHUB_SHA }}
restore-keys: ${{ runner.os }}-cargo-bins-
- name: install tools
if: steps.cache.outputs.cache_hit != 'true'
run: cargo install --git https://github.com/NicolasKlenert/cargo-all-features.git
- name: Run Tests
run: cargo test-all-features