name: Tests
on:
push:
branches:
- master
pull_request:
jobs:
test:
name: Test
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
CARGO_INCREMENTAL: 0
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Run tests
uses: actions-rs/cargo@v1
env:
RUST_BACKTRACE: 1
with:
command: test
- name: Compile benchmarks
uses: actions-rs/cargo@v1
with:
command: bench
args: --bench put_get --features with-bench --no-run
lint:
name: Run lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt, clippy
override: true
- name: Run cargo fmt
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: fmt
args: --all -- --check
- name: Run cargo clippy
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: clippy
coverage:
name: Check test coverage
runs-on: ubuntu-latest
container:
image: xd009642/tarpaulin:latest
options: --security-opt seccomp=unconfined
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Check test coverage
run: cargo tarpaulin --out Xml --ignore-tests
- name: Upload coverage results
uses: codecov/codecov-action@v1