feat(studio): add resolution selector to render export bar #546
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: preview-regression | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: preview-regression-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| changes: | |
| name: Detect changes | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 2 | |
| outputs: | |
| preview: ${{ steps.filter.outputs.preview }} | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4 | |
| id: filter | |
| with: | |
| token: "" | |
| filters: | | |
| preview: | |
| - "packages/core/**" | |
| - "packages/player/**" | |
| - "packages/studio/**" | |
| - "packages/cli/**" | |
| - "packages/producer/src/parity-harness.ts" | |
| - "packages/producer/src/parity-fixtures.ts" | |
| - "packages/producer/tests/parity/**" | |
| - "package.json" | |
| - "bun.lock" | |
| - ".github/workflows/preview-regression.yml" | |
| preview-parity: | |
| name: Preview parity | |
| needs: changes | |
| if: needs.changes.outputs.preview == 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 | |
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: 22 | |
| - run: bun install --frozen-lockfile | |
| - name: Run Studio preview routing regression | |
| run: | | |
| bun run --cwd packages/studio test -- vite.thumbnail.test.ts src/utils/projectRouting.test.ts src/utils/frameCapture.test.ts | |
| bun run --cwd packages/core test -- src/studio-api/routes/thumbnail.test.ts | |
| - name: Build preview runtime | |
| run: bun run --cwd packages/core build:hyperframes-runtime | |
| - name: Prepare parity fixtures | |
| run: bun run --cwd packages/producer parity:fixtures:ci | |
| - name: Install ffmpeg | |
| uses: FedericoCarboni/setup-ffmpeg@36c6454b5a2348e7794ba2d82a21506605921e3d # v3 | |
| - name: Set up Chrome | |
| id: setup-chrome | |
| uses: browser-actions/setup-chrome@c785b87e244131f27c9f19c1a33e2ead956ab7ce # v1 | |
| with: | |
| chrome-version: stable | |
| - name: Start parity fixture server | |
| run: | | |
| cd packages/producer/tests/parity/fixtures | |
| python3 -m http.server 4173 --bind 127.0.0.1 > /tmp/preview-parity-http.log 2>&1 & | |
| echo "$!" > /tmp/preview-parity-http.pid | |
| for _ in $(seq 1 30); do | |
| if curl -fsS http://127.0.0.1:4173/minimal-wysiwyg.html >/dev/null; then | |
| exit 0 | |
| fi | |
| sleep 1 | |
| done | |
| cat /tmp/preview-parity-http.log | |
| exit 1 | |
| - name: Run preview parity check | |
| working-directory: packages/producer | |
| env: | |
| PUPPETEER_EXECUTABLE_PATH: ${{ steps.setup-chrome.outputs.chrome-path }} | |
| run: bun run parity:check:ci | |
| - name: Upload parity artifacts | |
| if: failure() | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | |
| with: | |
| name: preview-parity-artifacts | |
| path: packages/producer/.debug/parity-harness-ci/ | |
| if-no-files-found: ignore | |
| retention-days: 30 | |
| preview-regression: | |
| runs-on: ubuntu-latest | |
| needs: [changes, preview-parity] | |
| if: always() | |
| steps: | |
| - name: Check results | |
| env: | |
| PREVIEW_FILTER_RESULT: ${{ needs.changes.outputs.preview }} | |
| PREVIEW_PARITY_RESULT: ${{ needs.preview-parity.result }} | |
| run: | | |
| { | |
| echo "## Preview regression gate" | |
| echo "" | |
| echo "- paths-filter \`preview\` matched: \`${PREVIEW_FILTER_RESULT}\`" | |
| echo "- preview-parity result: \`${PREVIEW_PARITY_RESULT}\`" | |
| echo "" | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| if [ "${PREVIEW_FILTER_RESULT}" != "true" ]; then | |
| echo "::notice title=Preview regression::SKIPPED — no preview/runtime changes. Auto-pass." | |
| echo "**Status:** SKIPPED (no preview/runtime changes — auto-pass)" >> "$GITHUB_STEP_SUMMARY" | |
| exit 0 | |
| fi | |
| if [ "${PREVIEW_PARITY_RESULT}" != "success" ]; then | |
| echo "**Status:** FAILED" >> "$GITHUB_STEP_SUMMARY" | |
| echo "Preview parity check failed" | |
| exit 1 | |
| fi | |
| echo "**Status:** PASSED" >> "$GITHUB_STEP_SUMMARY" |