Files
clipbin-desktop/.gitea/workflows/checks.yml
T
harry 3588d5b212 docs: add validation guide, hardware and Windows scripts, CI
Documents what the rig proved and what it found, adds the hardware sign-off
script for the Hyprland machine and an (untested) Windows validation script,
and updates CI to build the cached OBS runtime, run tests and lint the Windows
code paths.
2026-10-08 14:31:54 +02:00

63 lines
2.7 KiB
YAML

name: Rust checks
on:
push:
pull_request:
jobs:
linux:
runs-on: ubuntu-latest
steps:
- uses: https://github.com/actions/checkout@v4
- uses: https://github.com/dtolnay/rust-toolchain@1.98.0
with:
components: rustfmt, clippy
- name: Install native build dependencies
run: |
sudo apt-get update
# GPUI, plus clang for the libobs bindings.
sudo apt-get install -y build-essential pkg-config clang libfontconfig1-dev libfreetype6-dev \
libwayland-dev libxcb1-dev libxkbcommon-dev libxkbcommon-x11-dev libssl-dev
# OBS 32.0.4 libobs and the bundled plugins (scripts/obs/build-linux.sh).
sudo apt-get install -y cmake ninja-build extra-cmake-modules libavcodec-dev libavdevice-dev \
libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev libx264-dev \
libcurl4-openssl-dev libmbedtls-dev libgl1-mesa-dev libglvnd-dev libgles2-mesa-dev libjansson-dev \
libx11-dev libx11-xcb-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xinerama0-dev \
libxcb-composite0-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcomposite-dev libxinerama-dev \
libxss-dev libpci-dev libpipewire-0.3-dev libpulse-dev libudev-dev libva-dev libdrm-dev \
librist-dev libsrt-openssl-dev uthash-dev libsimde-dev nlohmann-json3-dev libffmpeg-nvenc-dev \
uuid-dev libglib2.0-dev
- name: Cache the OBS runtime
uses: https://github.com/actions/cache@v4
with:
path: target/obs-runtime/linux-x86_64
key: obs-runtime-linux-${{ hashFiles('scripts/obs/versions.env', 'scripts/obs/build-linux.sh') }}
- name: Build the OBS runtime
run: |
if [ ! -f target/obs-runtime/linux-x86_64/VERSION ]; then
scripts/obs/build-linux.sh
fi
- name: Check formatting
run: cargo fmt --all -- --check
- name: Lint
run: cargo clippy --locked --workspace --all-targets -- -D warnings
- name: Test
run: cargo test --locked --workspace
- name: Build
run: cargo build --locked --workspace
windows-cross-check:
runs-on: ubuntu-latest
steps:
- uses: https://github.com/actions/checkout@v4
- uses: https://github.com/dtolnay/rust-toolchain@1.98.0
with:
components: clippy
targets: x86_64-pc-windows-msvc
# Type-checks the Windows code paths; nothing is linked or run. The GPUI
# crate needs the MSVC C toolchain and is checked on Windows instead.
- name: Lint Windows code paths
run: >
cargo clippy --locked --target x86_64-pc-windows-msvc
-p clipbin-core -p clipbin-obs -p clipbin-probe --all-targets -- -D warnings