name: Integration
on:
pull_request:
paths:
- 'src/**.rs'
- 'Cargo.toml'
- '.github/workflows/integration.yml'
jobs:
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
components: rustfmt
- name: Check Formatting
run: cargo fmt --all -- --check
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
rust: [stable, nightly]
steps:
- uses: hecrj/setup-rust-action@v1.2.0
with:
rust-version: ${{ matrix.rust }}
- uses: actions/checkout@master
- name: Install libudev
if: matrix.os == 'ubuntu-latest'
run: sudo apt update && sudo apt install libudev-dev
- name: Test examples
run: cargo test ${{ matrix.options }} --all
clippy:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
rust: [stable]
runs-on: ${{ matrix.os }}
steps:
- uses: hecrj/setup-rust-action@v1.2.0
with:
rust-version: ${{ matrix.rust }}
components: clippy
- uses: actions/checkout@master
- name: Install libudev
if: matrix.os == 'ubuntu-latest'
run: sudo apt update && sudo apt install libudev-dev
- name: Clippy
run: cargo clippy -- -D warnings
- name: Featureless clipppy
run: cargo clippy --no-default-features -- -D warnings
clippy-web:
runs-on: macOS-latest
steps:
- uses: hecrj/setup-rust-action@v1.2.0
with:
rust-version: ${{ matrix.rust }}
targets: wasm32-unknown-unknown
- uses: actions/checkout@master
- name: Check stdweb
run: cargo install cargo-web && cargo web check --features stdweb
- name: Clippy
run: cargo check --target wasm32-unknown-unknown --features web-sys