ci(runner-e2e): install Playwright FFmpeg on AWS

This commit is contained in:
Dotta 2026-09-04 08:08:41 -05:00
parent af3023f1e3
commit 33425f79d3
2 changed files with 23 additions and 0 deletions

View File

@ -923,6 +923,21 @@ jobs:
test -x "$chrome_path"
google-chrome --version
- name: Install Playwright FFmpeg on AWS runner
if: needs.authorize.outputs.playwright_channel == 'chrome'
run: |
set -euo pipefail
for attempt in 1 2 3; do
if pnpm exec playwright install ffmpeg; then
exit 0
fi
if [ "$attempt" -eq 3 ]; then
echo "Playwright FFmpeg installation failed after $attempt attempts." >&2
exit 1
fi
sleep "$((attempt * 10))"
done
- name: Install Chromium headless shell on GitHub-hosted fallback
if: needs.authorize.outputs.playwright_channel != 'chrome'
run: |

View File

@ -251,6 +251,9 @@ describe("public repository paid workflow security", () => {
"if: needs.authorize.outputs.playwright_channel == 'chrome'",
);
expect(paidJob).toContain("google-chrome --version");
expect(paidJob).toMatch(
/- name: Install Playwright FFmpeg on AWS runner\n\s+if: needs\.authorize\.outputs\.playwright_channel == 'chrome'[\s\S]*pnpm exec playwright install ffmpeg/,
);
expect(paidJob).toContain(
"if: needs.authorize.outputs.playwright_channel != 'chrome'",
);
@ -266,9 +269,14 @@ describe("public repository paid workflow security", () => {
const daytonaPluginPreparation = paidJob.indexOf(
"Prepare bundled Daytona plugin without dependency lifecycle scripts",
);
const awsFfmpegInstall = paidJob.indexOf(
"- name: Install Playwright FFmpeg on AWS runner",
);
const paidExecution = paidJob.indexOf("- name: Run paid cell");
expect(paidInstall).toBeGreaterThan(0);
expect(daytonaPluginPreparation).toBeGreaterThan(paidInstall);
expect(awsFfmpegInstall).toBeGreaterThan(daytonaPluginPreparation);
expect(paidExecution).toBeGreaterThan(awsFfmpegInstall);
expect(paidExecution).toBeGreaterThan(daytonaPluginPreparation);
const preparedBeforeProviderAccess = paidJob.slice(
daytonaPluginPreparation,