git.lucas.co / cce-status-interface
status bar
git clone https://git.lucas.co/cce-status-interface.git

.github/workflows/ci.yml (1.5K)

 1 name: CI
 2 
 3 on:
 4   push:
 5   pull_request:
 6   workflow_dispatch:
 7 
 8 concurrency:
 9   group: ${{ github.workflow }}-${{ github.ref }}
10   cancel-in-progress: true
11 
12 env:
13   CARGO_TERM_COLOR: always
14   # Warnings are errors; the crate is clippy-clean (house-style allowances in
15   # Cargo.toml's [lints.clippy]), so keep it so.
16   RUSTFLAGS: -D warnings
17 
18 jobs:
19   test:
20     runs-on: ubuntu-24.04
21     timeout-minutes: 30
22     env:
23       # A known face set for anything that shapes text (cce-ui reads it from here).
24       CCE_FONTS_DIR: /usr/share/fonts/truetype/liberation
25     steps:
26       - uses: actions/checkout@v5
27       # libwayland-dev, libxkbcommon-dev: what cce-ui links through pkg-config.
28       - name: Install system packages
29         run: |
30           sudo apt-get update
31           sudo apt-get install -y --no-install-recommends \
32             pkg-config libwayland-dev libxkbcommon-dev fonts-liberation
33       - uses: dtolnay/rust-toolchain@stable
34       - uses: Swatinem/rust-cache@v2
35       - name: Build (all targets)
36         run: cargo build --all-targets
37       - name: Test
38         run: cargo test
39 
40   clippy:
41     runs-on: ubuntu-24.04
42     timeout-minutes: 20
43     steps:
44       - uses: actions/checkout@v5
45       - name: Install system packages
46         run: |
47           sudo apt-get update
48           sudo apt-get install -y --no-install-recommends pkg-config libwayland-dev libxkbcommon-dev
49       - uses: dtolnay/rust-toolchain@stable
50         with:
51           components: clippy
52       - uses: Swatinem/rust-cache@v2
53       - run: cargo clippy --all-targets -- -D warnings