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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user