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.
This commit is contained in:
2026-10-08 14:31:54 +02:00
parent 9178a303ca
commit 3588d5b212
5 changed files with 362 additions and 19 deletions
+42 -4
View File
@@ -5,20 +5,58 @@ on:
pull_request:
jobs:
checks:
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 UI build dependencies
- name: Install native build dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libfontconfig1-dev libfreetype6-dev libwayland-dev libxcb1-dev libxkbcommon-dev libxkbcommon-x11-dev libssl-dev
# 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: Check Rust
- 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