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.
63 lines
2.7 KiB
YAML
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
|