on:
push:
branches:
- main
pull_request:
branches:
- main
name: CI
env:
RUSTFLAGS: -D warnings
CARGO_TERM_COLOR: always
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- name: Lint (clippy)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-features --all-targets
- name: Lint (rustfmt)
uses: actions-rs/cargo@v1
with:
command: xfmt
args: --check
- name: Install cargo readme
uses: baptiste0928/cargo-install@v1
with:
crate: cargo-readme
version: latest
- name: Run cargo readme
run: ./scripts/regenerate-readmes.sh
- name: Check for differences
run: git diff --exit-code
build:
name: Build and test
runs-on: ubuntu-latest
strategy:
matrix:
rust-version: [1.56, stable]
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust-version }}
- uses: Swatinem/rust-cache@f8f67b7515e98e4ac991ccb5c11240861e0f712b
- uses: taiki-e/install-action@cargo-hack
- uses: taiki-e/install-action@nextest
- name: Build
uses: actions-rs/cargo@v1
with:
command: hack
args: --feature-powerset build --all-targets
- name: Test
uses: actions-rs/cargo@v1
with:
command: hack
args: --feature-powerset nextest run --all-targets
- name: Run doctests
uses: actions-rs/cargo@v1
with:
command: hack
args: --feature-powerset test --doc