name: Basic Test
on:
pull_request:
push:
branches:
- master
- ci-test
env:
RUST_BACKTRACE: full
jobs:
rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt
- name: Check format
run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: clippy
- name: Clippy check
run: cargo clippy -- -D warnings
test_all_features:
name: Test (all features)
needs: [rustfmt]
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
rust: [stable, nightly]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
- name: Build
run: cargo build --all-features
- name: Test
run: cargo test --all-features
test_default_features:
name: Test (default features)
needs: [rustfmt]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- name: Build
run: cargo build
- name: Test
run: cargo test
docs:
name: Documentations
runs-on: ubuntu-latest
strategy:
matrix:
name:
- default features
- all features
include:
- name: default features
doc_flags:
- name: all features
doc_flags: --all-features
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- name: Documenting
run: |
set -o pipefail
log=$(cargo doc ${{ matrix.doc_flags }} 2>&1 | tee /dev/stderr)
if [[ "$log" =~ warnings?' 'emitted ]]; then
echo "Warning detected"
exit 1
fi