bincode/.github/workflows/rust.yml

126 lines
2.6 KiB
YAML

name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
check:
name: Check
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
rust:
- stable
- beta
- nightly
- 1.18.0 # MSRV
steps:
- uses: actions/checkout@v2
name: Checkout
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
name: Install Rust ${{ matrix.rust }}
- uses: actions-rs/cargo@v1
with:
command: check
name: Run `cargo check`
- uses: actions-rs/cargo@v1
with:
command: check
args: --examples
name: Check examples
if: matrix.rust != '1.18.0'
test:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v2
name: Checkout
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
name: Install Rust ${{ matrix.rust }}
- uses: actions-rs/cargo@v1
with:
command: test
name: Run `cargo test`
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
name: Checkout
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy
name: Install Rust stable
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
name: Run `cargo fmt`
- uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
name: Run `cargo clippy`
coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
name: Checkout
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
name: Install Rust nightly
- name: Run cargo-tarpaulin
uses: actions-rs/tarpaulin@v0.1
with:
version: '0.12.3'
args: '--ignore-tests -- --test-threads 1'
- name: Upload to codecov.io
uses: codecov/codecov-action@v1
- name: Archive code coverage results
uses: actions/upload-artifact@v1
with:
name: code-coverage-report
path: cobertura.xml