From 3ae7d8d30617f595eb387482bc22bb794bcf74c3 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 27 Oct 2026 10:33:54 -0700 Subject: [PATCH 1/6] devops: run the macOS Firefox, Chrome and Edge jobs on macos-26-xlarge With the ported upstream tests (#2024) the test count triples, and on the free 3 vCPU / 7 GB runner these jobs hit the time limit. --- .github/workflows/test.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e454c79c0..22321a6a5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,11 +19,15 @@ jobs: os: [ubuntu-latest, windows-latest, macos-latest] browser: [chromium, firefox, webkit] exclude: - # macos-latest is the free M1 runner (3 vCPU / 7 GB); WebKit needs more headroom. - # Upstream's webkit matrix runs on macos-15-xlarge for the same reason. + # macos-latest is the free M1 runner (3 vCPU / 7 GB); Firefox and WebKit need more headroom. + - os: macos-latest + browser: firefox - os: macos-latest browser: webkit include: + - os: macos-26-xlarge + browser: firefox + # Upstream's webkit matrix runs on macos-15-xlarge for the same reason. - os: macos-15-xlarge browser: webkit runs-on: ${{ matrix.os }} @@ -64,12 +68,13 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + # Chrome and Edge need more headroom than the free M1 runner (3 vCPU / 7 GB) of macos-latest. + os: [ubuntu-latest, windows-latest, macos-26-xlarge] browser-channel: [chrome] include: - os: windows-latest browser-channel: msedge - - os: macos-latest + - os: macos-26-xlarge browser-channel: msedge runs-on: ${{ matrix.os }} steps: @@ -91,7 +96,7 @@ jobs: - name: Install browsers run: mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install --with-deps" -f playwright/pom.xml --no-transfer-progress - name: Install MS Edge - if: matrix.browser-channel == 'msedge' && matrix.os == 'macos-latest' + if: matrix.browser-channel == 'msedge' && runner.os == 'macOS' shell: bash run: mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install msedge" -f playwright/pom.xml - name: Run tests From 466e2c62380d06620f57f8fe6a836ca047cf49cb Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 27 Oct 2026 11:47:45 -0700 Subject: [PATCH 2/6] devops: run the Linux and Windows jobs on the 64-core runners The same runners as upstream's tests_primary.yml and playwright-python. --- .github/workflows/test.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 22321a6a5..92cde8dc3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,8 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + # Linux and Windows run on the 64-core runners of the organization, as upstream's tests_primary.yml. + os: [playwright-x64-ubuntu24-64-core, playwright-x64-server2025-64-core, macos-latest] browser: [chromium, firefox, webkit] exclude: # macos-latest is the free M1 runner (3 vCPU / 7 GB); Firefox and WebKit need more headroom. @@ -69,10 +70,10 @@ jobs: fail-fast: false matrix: # Chrome and Edge need more headroom than the free M1 runner (3 vCPU / 7 GB) of macos-latest. - os: [ubuntu-latest, windows-latest, macos-26-xlarge] + os: [playwright-x64-ubuntu24-64-core, playwright-x64-server2025-64-core, macos-26-xlarge] browser-channel: [chrome] include: - - os: windows-latest + - os: playwright-x64-server2025-64-core browser-channel: msedge - os: macos-26-xlarge browser-channel: msedge @@ -80,7 +81,7 @@ jobs: steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install Media Pack - if: matrix.os == 'windows-latest' + if: runner.os == 'Windows' shell: powershell run: Install-WindowsFeature Server-Media-Foundation - name: Set up JDK 1.8 @@ -111,7 +112,7 @@ jobs: fail-fast: false matrix: browser: [chromium, firefox, webkit] - runs-on: ubuntu-latest + runs-on: playwright-x64-ubuntu24-64-core steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK 21 From 911375dfc12d200f889f52dea36cea8320a43b15 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 27 Oct 2026 12:09:33 -0700 Subject: [PATCH 3/6] devops: test on JDK 25 and run Edge on Windows only JDK 25 is the latest LTS; Temurin, since AdoptOpenJDK gets no updates. --- .github/workflows/test.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 92cde8dc3..cedf1b4f8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,14 +69,13 @@ jobs: strategy: fail-fast: false matrix: - # Chrome and Edge need more headroom than the free M1 runner (3 vCPU / 7 GB) of macos-latest. + # Chrome needs more headroom than the free M1 runner (3 vCPU / 7 GB) of macos-latest. os: [playwright-x64-ubuntu24-64-core, playwright-x64-server2025-64-core, macos-26-xlarge] browser-channel: [chrome] include: + # Edge runs on Windows only, where the runner image has it. - os: playwright-x64-server2025-64-core browser-channel: msedge - - os: macos-26-xlarge - browser-channel: msedge runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -96,17 +95,13 @@ jobs: run: mvn -B install -D skipTests --no-transfer-progress - name: Install browsers run: mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install --with-deps" -f playwright/pom.xml --no-transfer-progress - - name: Install MS Edge - if: matrix.browser-channel == 'msedge' && runner.os == 'macOS' - shell: bash - run: mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install msedge" -f playwright/pom.xml - name: Run tests run: mvn test --no-transfer-progress --fail-at-end -D org.slf4j.simpleLogger.showDateTime=true -D org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss env: BROWSER: chromium BROWSER_CHANNEL: ${{ matrix.browser-channel }} - Java_21: + Java_25: timeout-minutes: 30 strategy: fail-fast: false @@ -115,17 +110,17 @@ jobs: runs-on: playwright-x64-ubuntu24-64-core steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Set up JDK 21 + - name: Set up JDK 25 uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: - distribution: adopt - java-version: 21 + distribution: temurin + java-version: 25 - name: Download drivers shell: bash run: scripts/download_driver.sh - name: Build & Install run: mvn -B install -D skipTests --no-transfer-progress - # Runs on JDK 21: with JDK 8 the javadoc plugin never uses the module path. + # Runs on JDK 25: with JDK 8 the javadoc plugin never uses the module path. - name: Verify javadoc run: scripts/verify_javadoc.sh - name: Install browsers From 7edd368f7185e2b8bd9298d44f585bae3f389f6f Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 27 Oct 2026 12:23:25 -0700 Subject: [PATCH 4/6] devops: run Java 25 with Chromium and Chrome on Linux only The JDK does not depend on the browser, and upstream tests the branded browsers on all platforms; Edge stays on Windows. --- .github/workflows/test.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cedf1b4f8..10c5f569c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,10 +69,10 @@ jobs: strategy: fail-fast: false matrix: - # Chrome needs more headroom than the free M1 runner (3 vCPU / 7 GB) of macos-latest. - os: [playwright-x64-ubuntu24-64-core, playwright-x64-server2025-64-core, macos-26-xlarge] - browser-channel: [chrome] + # Upstream tests the branded browsers on all platforms; here they only check the channel option. include: + - os: playwright-x64-ubuntu24-64-core + browser-channel: chrome # Edge runs on Windows only, where the runner image has it. - os: playwright-x64-server2025-64-core browser-channel: msedge @@ -106,7 +106,8 @@ jobs: strategy: fail-fast: false matrix: - browser: [chromium, firefox, webkit] + # The JDK does not depend on the browser; the other jobs run all three. + browser: [chromium] runs-on: playwright-x64-ubuntu24-64-core steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 From d1c575538b739e41310e2a50bc5e59408c2d8565 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 27 Oct 2026 12:24:10 -0700 Subject: [PATCH 5/6] devops: drop the comments that repeat the PR description --- .github/workflows/test.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 10c5f569c..ff3ed6781 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,11 +16,11 @@ jobs: strategy: fail-fast: false matrix: - # Linux and Windows run on the 64-core runners of the organization, as upstream's tests_primary.yml. os: [playwright-x64-ubuntu24-64-core, playwright-x64-server2025-64-core, macos-latest] browser: [chromium, firefox, webkit] exclude: # macos-latest is the free M1 runner (3 vCPU / 7 GB); Firefox and WebKit need more headroom. + # Upstream's webkit matrix runs on macos-15-xlarge for the same reason. - os: macos-latest browser: firefox - os: macos-latest @@ -28,7 +28,6 @@ jobs: include: - os: macos-26-xlarge browser: firefox - # Upstream's webkit matrix runs on macos-15-xlarge for the same reason. - os: macos-15-xlarge browser: webkit runs-on: ${{ matrix.os }} @@ -69,11 +68,9 @@ jobs: strategy: fail-fast: false matrix: - # Upstream tests the branded browsers on all platforms; here they only check the channel option. include: - os: playwright-x64-ubuntu24-64-core browser-channel: chrome - # Edge runs on Windows only, where the runner image has it. - os: playwright-x64-server2025-64-core browser-channel: msedge runs-on: ${{ matrix.os }} @@ -106,7 +103,6 @@ jobs: strategy: fail-fast: false matrix: - # The JDK does not depend on the browser; the other jobs run all three. browser: [chromium] runs-on: playwright-x64-ubuntu24-64-core steps: From bd291d173ec62ccd781f28d85b6557aa79a9a6d7 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 27 Oct 2026 12:33:50 -0700 Subject: [PATCH 6/6] devops: run all macOS browsers on macos-26-xlarge One label for the three browsers instead of the exclude and include lists. --- .github/workflows/test.yml | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ff3ed6781..aacd6ebc7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,20 +16,8 @@ jobs: strategy: fail-fast: false matrix: - os: [playwright-x64-ubuntu24-64-core, playwright-x64-server2025-64-core, macos-latest] + os: [playwright-x64-ubuntu24-64-core, playwright-x64-server2025-64-core, macos-26-xlarge] browser: [chromium, firefox, webkit] - exclude: - # macos-latest is the free M1 runner (3 vCPU / 7 GB); Firefox and WebKit need more headroom. - # Upstream's webkit matrix runs on macos-15-xlarge for the same reason. - - os: macos-latest - browser: firefox - - os: macos-latest - browser: webkit - include: - - os: macos-26-xlarge - browser: firefox - - os: macos-15-xlarge - browser: webkit runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1