mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-01 19:42:03 +00:00
ci(regression): make all style shards required
All style regression tests passed on first run — promote them from optional (continue-on-error) to required. Rebalanced into 4 style shards + 1 fast shard, all gated by the summary job. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -9,15 +9,21 @@ on:
|
||||
jobs:
|
||||
regression-shards:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
timeout-minutes: 40
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- shard: fast
|
||||
args: "--sequential --exclude-tags slow"
|
||||
- shard: required-styles
|
||||
tests: "style-5-prod style-6-prod style-10-prod"
|
||||
- shard: styles-a
|
||||
args: "style-1-prod style-2-prod style-3-prod style-5-prod"
|
||||
- shard: styles-b
|
||||
args: "style-4-prod style-6-prod style-10-prod style-11-prod"
|
||||
- shard: styles-c
|
||||
args: "style-7-prod style-8-prod style-9-prod style-12-prod"
|
||||
- shard: styles-d
|
||||
args: "style-13-prod style-15-prod style-16-prod style-17-prod style-18-prod"
|
||||
steps:
|
||||
- name: Checkout (with LFS)
|
||||
uses: actions/checkout@v4
|
||||
@@ -54,13 +60,13 @@ jobs:
|
||||
- name: "Run regression shard: ${{ matrix.shard }}"
|
||||
run: |
|
||||
echo "Shard: ${{ matrix.shard }}"
|
||||
echo "Args: ${{ matrix.args || matrix.tests }}"
|
||||
echo "Args: ${{ matrix.args }}"
|
||||
docker run --rm \
|
||||
--security-opt seccomp=unconfined \
|
||||
--shm-size=4g \
|
||||
-v ${{ github.workspace }}/packages/producer/tests:/app/packages/producer/tests \
|
||||
hyperframes-producer:test \
|
||||
${{ matrix.args || matrix.tests }}
|
||||
${{ matrix.args }}
|
||||
|
||||
- name: Upload failure artifacts
|
||||
if: failure()
|
||||
@@ -82,70 +88,3 @@ jobs:
|
||||
echo "One or more regression shards failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
regression-optional-styles:
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
timeout-minutes: 40
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- shard: styles-a
|
||||
tests: "style-1-prod style-2-prod style-3-prod"
|
||||
- shard: styles-b
|
||||
tests: "style-4-prod style-11-prod style-12-prod"
|
||||
- shard: styles-c
|
||||
tests: "style-15-prod style-17-prod style-18-prod"
|
||||
- shard: styles-d
|
||||
tests: "style-7-prod style-13-prod style-16-prod"
|
||||
steps:
|
||||
- name: Checkout (with LFS)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
- name: Validate LFS files
|
||||
run: |
|
||||
echo "Checking golden baseline MP4s (shard ${{ matrix.shard }})..."
|
||||
for mp4 in packages/producer/tests/*/output/output.mp4; do
|
||||
if [ -f "$mp4" ]; then
|
||||
size=$(stat --format=%s "$mp4")
|
||||
if [ "$size" -lt 1000 ]; then
|
||||
echo "ERROR: $mp4 appears to be an LFS pointer ($size bytes)"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build test Docker image (cached)
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: Dockerfile.test
|
||||
load: true
|
||||
tags: hyperframes-producer:test
|
||||
cache-from: type=gha,scope=regression-test-image
|
||||
cache-to: type=gha,mode=max,scope=regression-test-image
|
||||
|
||||
- name: "Run optional styles shard: ${{ matrix.shard }}"
|
||||
run: |
|
||||
echo "Shard: ${{ matrix.shard }}"
|
||||
echo "Tests: ${{ matrix.tests }}"
|
||||
docker run --rm \
|
||||
--security-opt seccomp=unconfined \
|
||||
--shm-size=4g \
|
||||
-v ${{ github.workspace }}/packages/producer/tests:/app/packages/producer/tests \
|
||||
hyperframes-producer:test \
|
||||
${{ matrix.tests }}
|
||||
|
||||
- name: Upload failure artifacts
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: regression-failures-${{ matrix.shard }}
|
||||
path: packages/producer/tests/*/failures/
|
||||
if-no-files-found: ignore
|
||||
|
||||
Reference in New Issue
Block a user