name: Rust
on: [push, pull_request]
jobs:
build:
name: Build and test
runs-on: ubuntu-latest
strategy:
matrix:
rust: [stable, beta, nightly]
steps:
- uses: actions/checkout@v1
- name: Install ${{ matrix.rust }}
uses: actions-rs/toolchain@v1.0.3
with:
toolchain: ${{ matrix.rust }}
override: true
profile: minimal
- name: Build
run: cargo build
- name: Test
run: cargo test --all
lints:
name: Check format and clippy lints
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1.0.3
with:
toolchain: stable
override: true
profile: minimal
components: rustfmt,clippy
- name: Check format
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy
coverage:
name: Code coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1.0.3
with:
toolchain: nightly
override: true
profile: minimal
- name: Generate profile data
run: cargo test --all-features --no-fail-fast
env:
CARGO_INCREMENTAL: '0'
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Zno-landing-pads'
- uses: actions-rs/grcov@v0.1
- name: Upload to coveralls
uses: coverallsapp/github-action@v1.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: lcov.info