name: CI
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
linux-validate:
name: Linux Validate
runs-on: ubuntu-latest
steps:
- name: Check out sources
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
cache: true
- name: Check formatting
run: cargo fmt --check
- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings
- name: Test base crate surface
run: cargo test --no-default-features
- name: Test wrapper feature without demo
run: cargo test --no-default-features --features session
- name: Test full crate surface
run: cargo test --all-features
windows-full-features:
name: Windows Full Features
runs-on: windows-latest
steps:
- name: Check out sources
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
cache: true
- name: Test full crate surface on Windows
run: cargo test --all-features
publish-dry-run:
name: Publish Dry Run
runs-on: ubuntu-latest
needs: linux-validate
steps:
- name: Check out sources
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
cache: true
- name: Verify publish package
run: cargo publish --dry-run --locked