mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-25 16:00:25 +01:00
A mirror answered HTTP 429 mid-install and failed the Windows installer build. setup-msys2 still does the system update; the package install is now its own step with three attempts, in release.yml and pc-host.yml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
54 lines
2.4 KiB
YAML
54 lines
2.4 KiB
YAML
name: PC host libraries
|
|
# PC in the headset (Experimental). The Windows job builds the native adapter
|
|
# and runs the real-encoder protocol tests; the installer's own bundle is
|
|
# tested in release.yml. The Linux adapter from PR #38 isn't shipped or offered
|
|
# in the app, but shares capture.c and controller.c, so it's still built here.
|
|
# These builds add the GPL x264 encoder for headless tests only: they're never
|
|
# uploaded or shipped.
|
|
on:
|
|
pull_request:
|
|
paths: ["desktop/**", "ui/**", "tests/**", "scripts/macview-bench.py", ".github/workflows/pc-host.yml"]
|
|
workflow_dispatch:
|
|
jobs:
|
|
linux:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, ubuntu-24.04-arm]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Native libraries
|
|
run: |
|
|
sudo apt-get update -qq
|
|
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libglib2.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-pipewire libpipewire-0.3-modules libspa-0.2-modules
|
|
python3 desktop/build.py --with-x264
|
|
- name: Tests (real x264, fake capture consent/input)
|
|
env:
|
|
FRAME_PC_REQUIRE_NATIVE: "1"
|
|
FRAME_PC_REQUIRE_X264: "1"
|
|
run: python3 -m unittest discover -s tests -p 'test_pc*.py' -v
|
|
windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: UCRT64
|
|
update: true
|
|
# A mirror's HTTP 429 once failed this install (2026-10-24): retry, so a
|
|
# flaky mirror can't break a release build.
|
|
- name: MSYS2 packages for the PC host
|
|
shell: msys2 {0}
|
|
run: |
|
|
for attempt in 1 2 3; do
|
|
pacman -S --needed --noconfirm mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-pkgconf mingw-w64-ucrt-x86_64-python mingw-w64-ucrt-x86_64-gstreamer mingw-w64-ucrt-x86_64-gst-plugins-base mingw-w64-ucrt-x86_64-gst-plugins-good mingw-w64-ucrt-x86_64-gst-plugins-bad mingw-w64-ucrt-x86_64-gst-plugins-ugly && exit 0
|
|
sleep $((attempt * 30))
|
|
done
|
|
exit 1
|
|
- name: Native build and tests (x264; WGC and MF need a desktop/GPU)
|
|
shell: msys2 {0}
|
|
run: |
|
|
python desktop/build.py --with-x264
|
|
FRAME_PC_REQUIRE_NATIVE=1 FRAME_PC_REQUIRE_X264=1 python -m unittest discover -s tests -p 'test_pc*.py' -v
|