diff --git a/.github/actions/version-matrix/src/matrices/python/playwright.ts b/.github/actions/version-matrix/src/matrices/python/playwright.ts index 4b1b7b8a3..67a75f54f 100644 --- a/.github/actions/version-matrix/src/matrices/python/playwright.ts +++ b/.github/actions/version-matrix/src/matrices/python/playwright.ts @@ -93,6 +93,10 @@ const imageNames = [ // Images that require Chrome/Chromium cannot be built for arm64 on Linux const arm64UnsupportedImages: ReadonlySet = new Set(['python-playwright', 'python-playwright-chrome']); +// Python versions the camoufox image is not built for. Camoufox depends on `zstandard` and `pyyaml`, which publish no +// wheels for these versions, and the slim base image has no compiler to build them from source. +const camoufoxUnsupportedPythonVersions: ReadonlySet = new Set(['3.15']); + const matrix = { include: [] as { 'image-name': (typeof imageNames)[number]; @@ -113,6 +117,10 @@ for (const pythonVersion of supportedPythonVersions) { for (const imageName of imageNames) { const isCamoufoxImage = imageName === 'python-playwright-camoufox'; + if (isCamoufoxImage && camoufoxUnsupportedPythonVersions.has(pythonVersion)) { + continue; + } + // The camoufox image only supports a subset of the Playwright versions, so it gets its own version list, along // with its own "latest" version - otherwise it would never receive the moving tags (e.g. `:3.14`, `:latest`). const imagePlaywrightVersions = isCamoufoxImage ? camoufoxPlaywrightVersions : latestFivePlaywrightVersions; diff --git a/.github/actions/version-matrix/src/shared/constants.ts b/.github/actions/version-matrix/src/shared/constants.ts index 06c8f4f49..e4c08c951 100644 --- a/.github/actions/version-matrix/src/shared/constants.ts +++ b/.github/actions/version-matrix/src/shared/constants.ts @@ -1,6 +1,6 @@ import { appendFile } from 'node:fs/promises'; -export const supportedPythonVersions = ['3.10', '3.11', '3.12', '3.13', '3.14']; +export const supportedPythonVersions = ['3.10', '3.11', '3.12', '3.13', '3.14', '3.15']; export const supportedNodeVersions = ['22', '24', '26'];