cat / goq
clone

turns a linux box into a private steam streaming appliance: plug in, tap your key, play from another computer

fix/architecture-review-findings
goq / .github / workflows / ci.yml
ci.yml 3.9K
1name: CI23on:4 pull_request:5 push:6 branches: [main]78permissions:9 contents: read1011concurrency:12 group: ci-${{ github.workflow }}-${{ github.ref }}13 cancel-in-progress: true1415jobs:16 decky-gate:17 name: Decky plugin gate18 runs-on: ubuntu-24.0419 timeout-minutes: 1020 steps:21 - name: Check out repository22 uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.12324 - name: Install pinned pnpm25 uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v426 with:27 version: 9.4.028 run_install: false2930 - name: Set up Node.js31 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.032 with:33 node-version: "22"34 cache: pnpm35 cache-dependency-path: decky/pnpm-lock.yaml3637 - name: Install Decky dependencies38 working-directory: decky39 run: pnpm install --frozen-lockfile4041 - name: Test and build Decky plugin42 working-directory: decky43 run: |44 pnpm test45 pnpm typecheck46 pnpm build4748 - name: Verify deterministic Decky package49 run: |50 python3 scripts/package-decky-plugin.py "$RUNNER_TEMP/decky-artifacts"51 python3 -m unittest scripts.tests.test_decky_package -v5253 demo-gate:54 name: Complete demo gate55 runs-on: ubuntu-24.0456 timeout-minutes: 4557 env:58 CARGO_TERM_COLOR: always59 RUST_BACKTRACE: "1"60 steps:61 - name: Check out repository62 uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.16364 - name: Install Linux build dependencies65 run: |66 sudo apt-get update67 sudo apt-get install --yes --no-install-recommends \68 build-essential \69 file \70 ffmpeg \71 gstreamer1.0-plugins-base \72 gstreamer1.0-plugins-bad \73 gstreamer1.0-plugins-good \74 gstreamer1.0-plugins-ugly \75 gstreamer1.0-tools \76 libayatana-appindicator3-dev \77 libgstreamer-plugins-base1.0-dev \78 libgstreamer1.0-dev \79 librsvg2-dev \80 libssl-dev \81 libudev-dev \82 libwebkit2gtk-4.1-dev \83 libxdo-dev \84 pkg-config \85 python3-venv \86 shellcheck8788 - name: Restore pinned cargo-zigbuild89 uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.490 with:91 path: ~/.cargo/bin/cargo-zigbuild92 key: cargo-zigbuild-${{ runner.os }}-${{ runner.arch }}-0.23.09394 - name: Install pinned cross-build tools95 run: |96 python3 -m venv "$RUNNER_TEMP/zig-venv"97 printf '%s\n' \98 'ziglang==0.16.0 --hash=sha256:9fcda73f62b851dd72a54b710ad40a209896db14cfb13649e62191243556342b' \99 | "$RUNNER_TEMP/zig-venv/bin/pip" install \100 --disable-pip-version-check \101 --only-binary=:all: \102 --require-hashes \103 --requirement /dev/stdin104 install -d "$RUNNER_TEMP/ci-bin"105 # Expand runner paths when the generated wrapper executes.106 # shellcheck disable=SC2016107 printf '%s\n' \108 '#!/usr/bin/env bash' \109 'exec "$RUNNER_TEMP/zig-venv/bin/python" -m ziglang "$@"' \110 >"$RUNNER_TEMP/ci-bin/zig"111 chmod 0755 "$RUNNER_TEMP/ci-bin/zig"112 echo "$RUNNER_TEMP/ci-bin" >>"$GITHUB_PATH"113 export PATH="$RUNNER_TEMP/ci-bin:$PATH"114 if ! cargo-zigbuild --version 2>/dev/null \115 | grep -Fxq 'cargo-zigbuild 0.23.0'; then116 cargo install cargo-zigbuild --locked --version 0.23.0117 fi118 test "$(zig version)" = 0.16.0119 test "$(cargo-zigbuild --version)" = 'cargo-zigbuild 0.23.0'120121 - name: Run complete demo gate122 env:123 GOQ_VERIFY_IN_PROCESS_GSTREAMER: "1"124 GOQ_REQUIRE_LINUX_CROSS_BUILD: "1"125 run: ./scripts/verify-demo-build.sh