name: ci
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v2
- name: Setup default Rust toolchain
uses: actions-rs/toolchain@v1
with:
components: clippy,rustfmt
- name: Check formatting
run: cargo fmt --all --verbose -- --check
- name: Run clippy linting
run: cargo clippy --color=always --verbose
env:
RUSTFLAGS:
"-D warnings"
build_and_test:
strategy:
matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest
toolchain:
- stable
- beta
- nightly
runs-on: ${{ matrix.os }}
steps:
- name: Checkout branch
uses: actions/checkout@v2
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
- name: Build and run tests
run: cargo test --color=always