Merge pull request #855 from heygen-com/05-15-ci_regression_rebalance_matrix_via_measured_per-test_durations

ci(regression): rebalance matrix via measured per-test durations
This commit is contained in:
James Russo
2026-05-15 02:52:24 -04:00
committed by GitHub
2 changed files with 24 additions and 22 deletions
+23 -21
View File
@@ -42,27 +42,29 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
# Shards are bin-packed by measured per-test duration (LPT heuristic on
# CI run 25893372795) so each row carries ~15-16 min of work. When a
# new fixture lands, drop it into the currently-lightest shard or
# re-balance against fresh `test_suite_summary` timings. Worst-shard
# work time was 19.3 min under the old tag-based split (styles-e);
# the rebalance brings every shard within ~40s of the others.
include: include:
- shard: fast - shard: shard-1
args: "--sequential --exclude-tags slow,render-compat,hdr" args: "hdr-regression style-5-prod style-3-prod mov-prores"
- shard: render-compat - shard: shard-2
args: "--sequential gsap-letters-render-compat css-spinner-render-compat raf-ball-render-compat iframe-render-compat" args: "style-15-prod hdr-hlg-regression style-1-prod many-cuts vfr-screen-recording render-symlinked-assets"
- shard: hdr - shard: shard-3
args: "--sequential hdr-regression hdr-hlg-regression" args: "style-7-prod style-8-prod style-10-prod css-spinner-render-compat webm-transparency mp4-h264-sdr"
- shard: styles-a - shard: shard-4
args: "style-1-prod style-2-prod style-3-prod" args: "style-16-prod style-9-prod style-17-prod iframe-render-compat variables-prod mp4-h265-sdr"
- shard: styles-b - shard: shard-5
args: "style-4-prod style-5-prod style-6-prod" args: "style-4-prod style-11-prod style-2-prod animejs-adapter typegpu-adapter"
- shard: styles-c - shard: shard-6
args: "style-7-prod style-8-prod style-9-prod" args: "overlay-montage-prod style-12-prod chat missing-host-comp-id png-sequence"
- shard: styles-d - shard: shard-7
args: "style-10-prod style-11-prod style-12-prod" args: "sub-composition-video style-18-prod raf-ball-render-compat font-variant-numeric"
- shard: styles-e - shard: shard-8
args: "style-13-prod style-15-prod style-16-prod" args: "style-13-prod style-6-prod vignelli-stacking gsap-letters-render-compat"
- shard: styles-f
args: "style-17-prod style-18-prod"
- shard: styles-g
args: "overlay-montage-prod"
steps: steps:
- name: Checkout (with LFS) - name: Checkout (with LFS)
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
@@ -94,7 +96,7 @@ jobs:
load: true load: true
tags: hyperframes-producer:test tags: hyperframes-producer:test
cache-from: type=gha,scope=regression-test-image cache-from: type=gha,scope=regression-test-image
cache-to: type=gha,mode=min,scope=regression-test-image cache-to: type=gha,mode=max,scope=regression-test-image
- name: "Run regression shard: ${{ matrix.shard }}" - name: "Run regression shard: ${{ matrix.shard }}"
run: | run: |
@@ -1,7 +1,7 @@
{ {
"name": "Sub-composition video in photo area", "name": "Sub-composition video in photo area",
"description": "Tests that video elements inside sub-compositions (lacking explicit id attributes) render correctly. Regression for: parseVideoElements selector only matched video[id][src], silently dropping id-less videos; end derived from data-end only (not data-duration); compiled HTML did not persist auto-assigned ids.", "description": "Tests that video elements inside sub-compositions (lacking explicit id attributes) render correctly. Regression for: parseVideoElements selector only matched video[id][src], silently dropping id-less videos; end derived from data-end only (not data-duration); compiled HTML did not persist auto-assigned ids.",
"tags": ["video", "sub-composition", "regression"], "tags": ["video", "sub-composition", "regression", "slow"],
"minPsnr": 25, "minPsnr": 25,
"maxFrameFailures": 5, "maxFrameFailures": 5,
"minAudioCorrelation": 0.0, "minAudioCorrelation": 0.0,