diff --git a/.github/workflows/linux-desktop-reliability.yml b/.github/workflows/linux-desktop-reliability.yml index bcf160af55..4e725cfba1 100644 --- a/.github/workflows/linux-desktop-reliability.yml +++ b/.github/workflows/linux-desktop-reliability.yml @@ -11,6 +11,8 @@ on: paths: - "apps/desktop-gpui/**" - "crates/recording/**" + - "crates/camera/**" + - "crates/camera-ffmpeg/**" - "crates/utils/**" - "crates/scap-targets/**" - "scripts/linux-desktop-harness/**" @@ -60,7 +62,7 @@ jobs: echo "run=true" >> "$GITHUB_OUTPUT"; exit 0 fi gh api "repos/$GITHUB_REPOSITORY/pulls/$PR/files" --paginate --jq '.[].filename' > "$RUNNER_TEMP/changed.txt" - if grep -qE '^(apps/desktop-gpui/|crates/(recording|utils|scap-targets)/|scripts/(prepare-gpui-dependency\.sh|finalize-linux-appimage\.mjs)$)' "$RUNNER_TEMP/changed.txt"; then + if grep -qE '^(apps/desktop-gpui/|crates/(recording|camera|camera-ffmpeg|utils|scap-targets)/|scripts/(prepare-gpui-dependency\.sh|finalize-linux-appimage\.mjs)$)' "$RUNNER_TEMP/changed.txt"; then echo "run=true" >> "$GITHUB_OUTPUT" else echo "run=false" >> "$GITHUB_OUTPUT" diff --git a/scripts/linux-desktop-harness/x11-camera.sh b/scripts/linux-desktop-harness/x11-camera.sh index d98f21f835..3721b62154 100755 --- a/scripts/linux-desktop-harness/x11-camera.sh +++ b/scripts/linux-desktop-harness/x11-camera.sh @@ -13,6 +13,9 @@ result() { printf '%s=%s\n' "$1" "$2" >>"$out/result.txt"; } device=/dev/video42 sudo modprobe v4l2loopback video_nr=42 card_label="Cap Test Camera" exclusive_caps=1 || exit 2 +# udev applies its own mode to the new node after modprobe returns; let it +# finish first so it cannot reset the chmod below. +sudo udevadm settle --timeout=10 sudo chmod 666 "$device" ffmpeg -hide_banner -loglevel error -nostdin -re -f lavfi -i testsrc2=size=1280x720:rate=30 -pix_fmt yuyv422 \ -f v4l2 "$device" >"$out/feeder.log" 2>&1 &