From 5800a7d1fecb050b2c13fd076bf5b3018198e02d Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Fri, 6 Nov 2026 06:19:33 +0100 Subject: [PATCH 1/5] ci: baseline Chromium system dependency benchmark Co-Authored-By: OpenAI Codex From e96fe7f24b5851c8c24bbfd926b9dd80bd36ae67 Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Fri, 6 Nov 2026 06:22:35 +0100 Subject: [PATCH 2/5] ci: trigger full Chromium dependency baseline Co-Authored-By: OpenAI Codex --- .github/actions/install-playwright/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/install-playwright/action.yml b/.github/actions/install-playwright/action.yml index ca6c8a2d9583..55d2a5d0a3a0 100644 --- a/.github/actions/install-playwright/action.yml +++ b/.github/actions/install-playwright/action.yml @@ -1,5 +1,5 @@ name: 'Install Playwright dependencies' -description: 'Installs Playwright dependencies and caches them.' +description: 'Installs Playwright browsers and system dependencies, and caches browser binaries.' inputs: browsers: description: 'What browsers to install.' From f535615d088a256cc5edb8d6a55edae2fd95b0b9 Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Fri, 6 Nov 2026 06:39:56 +0100 Subject: [PATCH 3/5] ci: benchmark Chromium without system dependency installation Co-Authored-By: OpenAI Codex --- .github/actions/install-playwright/action.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/actions/install-playwright/action.yml b/.github/actions/install-playwright/action.yml index 55d2a5d0a3a0..0079a5c4c174 100644 --- a/.github/actions/install-playwright/action.yml +++ b/.github/actions/install-playwright/action.yml @@ -41,7 +41,8 @@ runs: - name: Install Playwright dependencies (uncached) env: PLAYWRIGHT_VERSION: ${{ steps.playwright-version.outputs.version }} - run: npx -y "playwright@$PLAYWRIGHT_VERSION" install chromium webkit firefox --with-deps + PLAYWRIGHT_INSTALL_DEPS: ${{ inputs.browsers != 'chromium' && '--with-deps' || '' }} + run: npx -y "playwright@$PLAYWRIGHT_VERSION" install chromium webkit firefox $PLAYWRIGHT_INSTALL_DEPS if: steps.playwright-version.outputs.version != '' && steps.playwright-cache.outputs.cache-hit != 'true' shell: bash working-directory: ${{ runner.temp }} @@ -51,7 +52,9 @@ runs: PLAYWRIGHT_BROWSERS: ${{ inputs.browsers || 'chromium webkit firefox' }} PLAYWRIGHT_VERSION: ${{ steps.playwright-version.outputs.version }} run: npx -y "playwright@$PLAYWRIGHT_VERSION" install-deps $PLAYWRIGHT_BROWSERS - if: steps.playwright-version.outputs.version != '' && steps.playwright-cache.outputs.cache-hit == 'true' + if: + steps.playwright-version.outputs.version != '' && steps.playwright-cache.outputs.cache-hit == 'true' && + inputs.browsers != 'chromium' shell: bash working-directory: ${{ runner.temp }} From dabf65bfd7919fb05f1f6f52847cb399943994fe Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Fri, 6 Nov 2026 07:54:05 +0100 Subject: [PATCH 4/5] ci: skip Firefox system setup and reduce WebKit packages Co-Authored-By: OpenAI Codex --- .github/actions/install-playwright/action.yml | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/.github/actions/install-playwright/action.yml b/.github/actions/install-playwright/action.yml index 0079a5c4c174..d23678d7e525 100644 --- a/.github/actions/install-playwright/action.yml +++ b/.github/actions/install-playwright/action.yml @@ -38,23 +38,41 @@ runs: # We always install all browsers, if uncached # `npx` runs outside the repo, so it can't pick up a `playwright` that a parallel `pnpm install` is still linking. - - name: Install Playwright dependencies (uncached) + - name: Install Playwright browsers (uncached) env: PLAYWRIGHT_VERSION: ${{ steps.playwright-version.outputs.version }} - PLAYWRIGHT_INSTALL_DEPS: ${{ inputs.browsers != 'chromium' && '--with-deps' || '' }} - run: npx -y "playwright@$PLAYWRIGHT_VERSION" install chromium webkit firefox $PLAYWRIGHT_INSTALL_DEPS + run: npx -y "playwright@$PLAYWRIGHT_VERSION" install chromium webkit firefox if: steps.playwright-version.outputs.version != '' && steps.playwright-cache.outputs.cache-hit != 'true' shell: bash working-directory: ${{ runner.temp }} - - name: Install Playwright system dependencies only (cached) + - name: Install Playwright system dependencies env: PLAYWRIGHT_BROWSERS: ${{ inputs.browsers || 'chromium webkit firefox' }} PLAYWRIGHT_VERSION: ${{ steps.playwright-version.outputs.version }} - run: npx -y "playwright@$PLAYWRIGHT_VERSION" install-deps $PLAYWRIGHT_BROWSERS + run: | + if [[ "$PLAYWRIGHT_BROWSERS" == webkit ]]; then + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + gstreamer1.0-plugins-base \ + gstreamer1.0-plugins-good \ + libavif16 \ + libevent-2.1-7t64 \ + libflite1 \ + libgles2 \ + libgstreamer-gl1.0-0 \ + libgstreamer-plugins-bad1.0-0 \ + libgstreamer-plugins-base1.0-0 \ + libharfbuzz-icu0 \ + libhyphen0 \ + libmanette-0.2-0 \ + libopus0 \ + libwayland-server0 + else + npx -y "playwright@$PLAYWRIGHT_VERSION" install-deps $PLAYWRIGHT_BROWSERS + fi if: - steps.playwright-version.outputs.version != '' && steps.playwright-cache.outputs.cache-hit == 'true' && - inputs.browsers != 'chromium' + steps.playwright-version.outputs.version != '' && inputs.browsers != 'chromium' && inputs.browsers != 'firefox' shell: bash working-directory: ${{ runner.temp }} From 291ac823741c6bb3529e726c75a3d2e197b91a65 Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Fri, 6 Nov 2026 08:21:44 +0100 Subject: [PATCH 5/5] ci: simplify browser dependency installation Co-Authored-By: OpenAI Codex --- .github/actions/install-playwright/action.yml | 47 ++++++++----------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/.github/actions/install-playwright/action.yml b/.github/actions/install-playwright/action.yml index d23678d7e525..7dfc5482857d 100644 --- a/.github/actions/install-playwright/action.yml +++ b/.github/actions/install-playwright/action.yml @@ -1,5 +1,5 @@ name: 'Install Playwright dependencies' -description: 'Installs Playwright browsers and system dependencies, and caches browser binaries.' +description: 'Installs Playwright dependencies and caches them.' inputs: browsers: description: 'What browsers to install.' @@ -46,35 +46,26 @@ runs: shell: bash working-directory: ${{ runner.temp }} - - name: Install Playwright system dependencies - env: - PLAYWRIGHT_BROWSERS: ${{ inputs.browsers || 'chromium webkit firefox' }} - PLAYWRIGHT_VERSION: ${{ steps.playwright-version.outputs.version }} + - name: Install headless WebKit system dependencies + if: steps.playwright-version.outputs.version != '' && contains(inputs.browsers, 'webkit') run: | - if [[ "$PLAYWRIGHT_BROWSERS" == webkit ]]; then - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - gstreamer1.0-plugins-base \ - gstreamer1.0-plugins-good \ - libavif16 \ - libevent-2.1-7t64 \ - libflite1 \ - libgles2 \ - libgstreamer-gl1.0-0 \ - libgstreamer-plugins-bad1.0-0 \ - libgstreamer-plugins-base1.0-0 \ - libharfbuzz-icu0 \ - libhyphen0 \ - libmanette-0.2-0 \ - libopus0 \ - libwayland-server0 - else - npx -y "playwright@$PLAYWRIGHT_VERSION" install-deps $PLAYWRIGHT_BROWSERS - fi - if: - steps.playwright-version.outputs.version != '' && inputs.browsers != 'chromium' && inputs.browsers != 'firefox' + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + gstreamer1.0-plugins-base \ + gstreamer1.0-plugins-good \ + libavif16 \ + libevent-2.1-7t64 \ + libflite1 \ + libgles2 \ + libgstreamer-gl1.0-0 \ + libgstreamer-plugins-bad1.0-0 \ + libgstreamer-plugins-base1.0-0 \ + libharfbuzz-icu0 \ + libhyphen0 \ + libmanette-0.2-0 \ + libopus0 \ + libwayland-server0 shell: bash - working-directory: ${{ runner.temp }} # Only store cache on develop branch - name: Store cached playwright binaries