name: "CI: Rust Linux unit" on: pull_request: paths: - "libs/cua-driver/rust/Cargo.toml" - "libs/cua-driver/rust/Cargo.lock" - "libs/cua-driver/rust/crates/cua-driver/**" - "libs/cua-driver/rust/crates/cua-driver-core/**" - "libs/cua-driver/rust/crates/cua-driver-testkit/**" - "libs/cua-driver/rust/crates/platform-linux/**" - "libs/cua-driver/tests/fixtures/**" - "nix/**" - "flake.nix" - "flake.lock" - ".github/workflows/ci-rust-linux.yml" push: branches: [main] paths: - "libs/cua-driver/rust/**" - "libs/cua-driver/tests/fixtures/**" - "nix/**" - "flake.nix" - "flake.lock" - ".github/workflows/ci-rust-linux.yml" workflow_dispatch: permissions: contents: read concurrency: group: ci-rust-linux-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: unit: name: Rust Linux unit and compile runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2 with: workspaces: "libs/cua-driver/rust -> target" - name: Install Linux build dependencies run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ clang pkg-config libdbus-1-dev libpipewire-0.3-dev libspa-0.2-dev \ libei-dev libxkbcommon-dev libx11-dev libxi-dev libxtst-dev libxext-dev - name: Run Linux Rust tests working-directory: libs/cua-driver/rust run: cargo test -p cua-driver -p cua-driver-core -p cua-driver-testkit -p platform-linux --all-targets --locked - name: Compile portable GNOME/KDE portal input working-directory: libs/cua-driver/rust run: cargo check -p cua-driver --features portal-input --locked