From 794ebeb89f35e082c9fa7a4633fcb07a882434bd Mon Sep 17 00:00:00 2001 From: Vance Ingalls Date: Tue, 9 Jun 2026 13:13:06 -0700 Subject: [PATCH] chore(ci): add fast-capture video validation workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Renders a video composition baseline-vs-fast on a native amd64 Linux runner and asserts the fast (drawElementImage) output matches via PSNR — validating the BeginFrame paint path captures video, which couldn't be checked locally (macOS has no BeginFrame; Docker-on-rosetta hung). Co-Authored-By: Claude Opus 4.8 (1M context) --- .fallowrc.jsonc | 1 + .github/workflows/fast-video-validation.yml | 49 ++++++++++++ .../producer/scripts/validate-fast-video.ts | 77 +++++++++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 .github/workflows/fast-video-validation.yml create mode 100644 packages/producer/scripts/validate-fast-video.ts diff --git a/.fallowrc.jsonc b/.fallowrc.jsonc index 878728bcb2..033bcea4b1 100644 --- a/.fallowrc.jsonc +++ b/.fallowrc.jsonc @@ -14,6 +14,7 @@ "packages/producer/src/runtime-conformance.ts", "packages/producer/src/benchmark.ts", "packages/producer/scripts/generate-font-data.ts", + "packages/producer/scripts/validate-fast-video.ts", "packages/cli/scripts/generate-font-data.ts", "packages/engine/scripts/test-fitTextFontSize-browser.ts", "packages/aws-lambda/scripts/*.ts", diff --git a/.github/workflows/fast-video-validation.yml b/.github/workflows/fast-video-validation.yml new file mode 100644 index 0000000000..3516a60114 --- /dev/null +++ b/.github/workflows/fast-video-validation.yml @@ -0,0 +1,49 @@ +# Validates the experimental fast-capture (drawElementImage) VIDEO path on a +# native amd64 Linux runner — where chrome-headless-shell's per-frame BeginFrame +# drives a real paint each frame, so drawElementImage's snapshot is fresh and +# video captures correctly. This is the one part of the feature that could not be +# validated locally (macOS has no BeginFrame; Docker-on-rosetta hung). +# See docs/fast-capture-limitations.md (Limitation 2). +# +# Manual trigger: Actions → "Fast-capture video validation" → Run workflow. +name: Fast-capture video validation + +on: + workflow_dispatch: + inputs: + composition: + description: Test composition to render (must contain