name: CI
on:
pull_request:
push:
branches:
- main
env:
RUST_BACKTRACE: full
jobs:
rustfmt:
name: rustfmt / linux / stable
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
run: |
rustup default nightly-2021-02-16
rustup component add rustfmt
- name: cargo fmt -- --check
run: |
cargo fmt -- --check
clippy:
name: clippy / linux / stable
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
run: |
rustup update --no-self-update stable
rustup component add clippy
- name: cargo clippy
run: |
cargo clippy --features rustc_1_40 --all-targets
test:
name: test / ${{ matrix.name }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
- name: linux / stable
rust: stable
- name: linux / beta
rust: beta
- name: linux / nightly
rust: nightly
- name: linux / 1.37.0
rust: 1.37.0
- name: linux / 1.34.2
rust: 1.34.2
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
run: |
rustup default ${{ matrix.rust }}
rustup update --no-self-update ${{ matrix.rust }}
- name: Remove unused dev-dependencies for benches
run: |
sed -i '/criterion/d' Cargo.toml
sed -i '/bzip2 =/d' Cargo.toml
- name: Test
run: |
cargo test ${{ matrix.args }}
- name: Test (with rustc 1.37 optimizations)
if: matrix.rust != '1.34.2'
run: |
cargo test --features rustc_1_37
- name: Test (with rustc 1.40 optimizations)
if: matrix.rust != '1.37.0' && matrix.rust != '1.34.2'
run: |
cargo test --features rustc_1_40
- name: Test (with rustc nightly optimizations)
if: matrix.rust == 'nightly'
run: |
cargo test --features nightly