name: Rust
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
check-style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b
- name: Report cargo version
run: cargo --version
- name: Report rustfmt version
run: cargo fmt -- --version
- name: Check style
run: cargo fmt -- --check
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
rust-version: [stable, "1.85"]
features: [all, default]
include:
- features: all
feature_flags: --all-features
steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b
- uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ matrix.rust-version }}
- name: Report cargo version
run: cargo --version
- name: Report rustc version
run: rustc --version
- name: Build
run: cargo build ${{ matrix.feature_flags }} --locked --all-targets --verbose
- name: Run tests
run: cargo test ${{ matrix.feature_flags }} --locked --all-targets --verbose