on: [pull_request]
name: Continuous integration
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
- uses: actions-rs/cargo@v1
with:
command: check
args: --all-features
test:
name: Test Suite
strategy:
matrix:
target: ["x86_64-pc-windows-msvc", "x86_64-unknown-linux-musl", "x86_64-apple-darwin"]
include:
- target: x86_64-apple-darwin
os: macos-latest
- target: x86_64-pc-windows-msvc
os: windows-latest
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
- name: Install Musl
if: contains(matrix.target, 'musl') && matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y musl musl-tools
- uses: actions-rs/cargo@v1
with:
command: test
args: --all-features ${{ matrix.target }}
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
components: clippy
- uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-features -- -D warnings