name: Lint & Test
on:
pull_request:
types: [ opened, edited, reopened, synchronize ]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test:
strategy:
matrix:
platform: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust Stable
uses: dtolnay/rust-toolchain@stable
- name: Rust Cache
uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.platform }}-v2
- name: Clippy Install
uses: dtolnay/rust-toolchain@clippy
- name: Lint
if: matrix.platform != 'windows-latest'
run: cargo clippy --all-features --all-targets --tests -- -Dclippy::all -Dclippy::pedantic
- name: Lint
if: matrix.platform == 'windows-latest'
run: cargo clippy --all-features --all-targets --tests
- name: Test
run: cargo test --all-features