on: [push, pull_request]
name: CI
env:
RUSTFLAGS: -D warnings
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
- uses: Swatinem/rust-cache@v2
- run: cargo check --no-default-features --lib
- run: cargo check --no-default-features --features client --all-targets
- run: cargo check --no-default-features --features server --lib
- run: cargo check --all-features --all-targets
check_mac_intel:
name: Check macOS (Intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
- uses: Swatinem/rust-cache@v2
- run: cargo check --no-default-features --lib
- run: cargo check --no-default-features --features client --all-targets
- run: cargo check --no-default-features --features server --lib
- run: cargo check --all-features --all-targets
check_mac_arm:
name: Check macOS (ARM)
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
- uses: Swatinem/rust-cache@v2
- run: cargo check --no-default-features --lib
- run: cargo check --no-default-features --features client --all-targets
- run: cargo check --no-default-features --features server --lib
- run: cargo check --all-features --all-targets
check_wasm:
name: Check wasm32
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
with:
target: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- run: cargo check --no-default-features --lib --target wasm32-unknown-unknown
- run: cargo check --no-default-features --features client --lib --target wasm32-unknown-unknown
test:
name: Test Suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get update
- run: sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
- run: cargo test --lib --all-features
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
with:
components: rustfmt
- run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --all-features --all-targets -- -D warnings
trunk:
name: Trunk
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.1
with:
target: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- run: wget -qO- https://github.com/trunk-rs/trunk/releases/download/v0.18.8/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-
- run: ./trunk build