name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Install rustup
run: rustup component add rustfmt
- name: Rustfmt
run: cargo fmt -- --check --color always
- name: Fetch
run: cargo fetch --verbose
- name: Install clippy
run: rustup component add clippy
- name: Clippy
run: cargo clippy --all-targets --all-features -- -D warnings
build:
strategy:
matrix:
toolchain: [ stable, nightly ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
override: true
- name: Build
run: cargo build --verbose
- name: Tests
run: cargo test --verbose
publish-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Fetch
run: cargo fetch --verbose
- name: Publish (dry run)
run: cargo publish --dry-run --verbose