name: Continuous Integration
on:
push:
branches:
- master
pull_request:
jobs:
ci:
strategy:
fail-fast: false
matrix:
rust: ["1.86", "stable", "beta"]
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
rustflags: ""
- name: Install system dependencies
run: sudo apt-get install libxkbcommon-dev libwayland-dev
- name: Check lib no features
run: cargo check --no-default-features
- name: Check full features
run: cargo check --all-features
test:
strategy:
fail-fast: false
matrix:
rust: ["stable", "beta"]
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ matrix.rust }}
rustflags: ""
- name: Update system repositories
run: sudo apt-get update
- name: Install system dependencies
run: sudo apt-get install libfontconfig1-dev libxkbcommon-dev libwayland-dev
- name: Test lib no features
run: cargo test --no-default-features --lib
- name: Test doc no features
run: cargo test --no-default-features --doc
- name: Test full features
run: cargo test --all-features
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: rustfmt, clippy
rustflags: ""
- name: Cargo fmt
run: cargo fmt --all -- --check
- name: Install system dependencies
run: sudo apt-get install libxkbcommon-dev
- name: Clippy
run: cargo clippy -- -D warnings