name: Cargo Build & Test
on:
push:
branches:
- master
pull_request:
paths:
- 'src/**'
- 'resources/**'
- 'Cargo.toml'
env:
CARGO_TERM_COLOR: always
jobs:
style:
name: Check Style
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
profile: minimal
override: true
- name: cargo fmt --all --check
run: cargo fmt --all --check
test:
name: Test
needs: [style]
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [stable, nightly]
include:
- toolchain: nightly
benches: true
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
profile: minimal
override: true
- name: Install alsa
if: ${{ runner.os == 'Linux' }}
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev
- name: Install udev
if: ${{ runner.os == 'Linux' }}
run: sudo apt-get update; sudo apt-get install --no-install-recommends libudev-dev
- name: Build debug
run: cargo build --verbose
- name: Run Tests
run: cargo test --verbose