From 3a3aa818a3d5aed964a06f1624c98e0e3e90410a Mon Sep 17 00:00:00 2001 From: Beace Date: Fri, 7 Feb 2025 22:11:25 +0800 Subject: [PATCH 1/2] feat(mirror): add chromium-headless-shell (#748) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在内部也遇到了,感觉直接加就行,可以试试看看 @fengmk2 close #742 ## Summary by CodeRabbit - **New Features** - Introduced enhanced support for the chromium-headless-shell binary with updated download options across multiple operating systems, including popular Linux distributions, macOS (with arm64 support), and Windows. This improvement ensures smoother integration and broader compatibility for users running different platforms. --------- Co-authored-by: fengmk2 --- app/common/adapter/binary/PlaywrightBinary.ts | 45 +++++++++++++++++++ .../adapter/binary/PlaywrightBinary.test.ts | 7 +-- 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/app/common/adapter/binary/PlaywrightBinary.ts b/app/common/adapter/binary/PlaywrightBinary.ts index bc6fbea2b..91ead9430 100644 --- a/app/common/adapter/binary/PlaywrightBinary.ts +++ b/app/common/adapter/binary/PlaywrightBinary.ts @@ -186,6 +186,35 @@ const DOWNLOAD_PATHS = { 'mac14-arm64': 'builds/android/%s/android.zip', 'win64': 'builds/android/%s/android.zip', }, + 'chromium-headless-shell': { + '': undefined, + 'ubuntu18.04-x64': undefined, + 'ubuntu20.04-x64': 'builds/chromium/%s/chromium-headless-shell-linux.zip', + 'ubuntu22.04-x64': 'builds/chromium/%s/chromium-headless-shell-linux.zip', + 'ubuntu24.04-x64': 'builds/chromium/%s/chromium-headless-shell-linux.zip', + 'ubuntu18.04-arm64': undefined, + 'ubuntu20.04-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', + 'ubuntu22.04-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', + 'ubuntu24.04-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', + 'debian11-x64': 'builds/chromium/%s/chromium-headless-shell-linux.zip', + 'debian11-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', + 'debian12-x64': 'builds/chromium/%s/chromium-headless-shell-linux.zip', + 'debian12-arm64': 'builds/chromium/%s/chromium-headless-shell-linux-arm64.zip', + 'mac10.13': undefined, + 'mac10.14': undefined, + 'mac10.15': undefined, + 'mac11': 'builds/chromium/%s/chromium-headless-shell-mac.zip', + 'mac11-arm64': 'builds/chromium/%s/chromium-headless-shell-mac-arm64.zip', + 'mac12': 'builds/chromium/%s/chromium-headless-shell-mac.zip', + 'mac12-arm64': 'builds/chromium/%s/chromium-headless-shell-mac-arm64.zip', + 'mac13': 'builds/chromium/%s/chromium-headless-shell-mac.zip', + 'mac13-arm64': 'builds/chromium/%s/chromium-headless-shell-mac-arm64.zip', + 'mac14': 'builds/chromium/%s/chromium-headless-shell-mac.zip', + 'mac14-arm64': 'builds/chromium/%s/chromium-headless-shell-mac-arm64.zip', + 'mac15': 'builds/chromium/%s/chromium-headless-shell-mac.zip', + 'mac15-arm64': 'builds/chromium/%s/chromium-headless-shell-mac-arm64.zip', + 'win64': 'builds/chromium/%s/chromium-headless-shell-win64.zip', + }, } as const; @SingletonProto() @@ -237,6 +266,22 @@ export class PlaywrightBinary extends AbstractBinary { }), ), ); + // if chromium-headless-shell not exists on browsers, copy chromium to chromium-headless-shell + if (!browsers.find(browser => browser.name === 'chromium-headless-shell')) { + const chromium = browsers.find(browser => browser.name === 'chromium'); + // { + // "name": "chromium", + // "revision": "1155", + // "installByDefault": true, + // "browserVersion": "133.0.6943.16" + // } + if (chromium) { + browsers.push({ + ...chromium, + name: 'chromium-headless-shell', + }); + } + } for (const browser of browsers) { const downloadPaths = DOWNLOAD_PATHS[browser.name]; diff --git a/test/common/adapter/binary/PlaywrightBinary.test.ts b/test/common/adapter/binary/PlaywrightBinary.test.ts index 5d809b3a5..254ee9c0d 100644 --- a/test/common/adapter/binary/PlaywrightBinary.test.ts +++ b/test/common/adapter/binary/PlaywrightBinary.test.ts @@ -8,6 +8,7 @@ describe('test/common/adapter/binary/PlaywrightBinary.test.ts', () => { beforeEach(async () => { binary = await app.getEggObject(PlaywrightBinary); }); + describe('fetch()', () => { it('should fetch root: / work', async () => { app.mockHttpclient('https://registry.npmjs.com/playwright-core', 'GET', { @@ -50,8 +51,7 @@ describe('test/common/adapter/binary/PlaywrightBinary.test.ts', () => { .persist(); let result = await binary.fetch('/builds/'); assert(result); - // console.log(result.items); - assert.equal(result.items.length, 7); + assert.equal(result.items.length, 8); assert.equal(result.items[0].name, 'chromium/'); assert.equal(result.items[1].name, 'chromium-tip-of-tree/'); assert.equal(result.items[2].name, 'firefox/'); @@ -59,11 +59,12 @@ describe('test/common/adapter/binary/PlaywrightBinary.test.ts', () => { assert.equal(result.items[4].name, 'webkit/'); assert.equal(result.items[5].name, 'ffmpeg/'); assert.equal(result.items[6].name, 'android/'); + assert.equal(result.items[7].name, 'chromium-headless-shell/'); assert.equal(result.items[0].isDir, true); const names = [ 'chromium', 'chromium-tip-of-tree', 'firefox', 'firefox-beta', - 'webkit', 'ffmpeg', + 'webkit', 'ffmpeg', 'chromium-headless-shell', ]; for (const dirname of names) { result = await binary.fetch(`/builds/${dirname}/`); From 43636bd80beb326d64003df7cc482f56804e2419 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 7 Feb 2025 14:12:55 +0000 Subject: [PATCH 2/2] Release 3.72.0 [skip ci] ## [3.72.0](https://github.com/cnpm/cnpmcore/compare/v3.71.3...v3.72.0) (2025-02-07) ### Features * **mirror:** add chromium-headless-shell ([#748](https://github.com/cnpm/cnpmcore/issues/748)) ([3a3aa81](https://github.com/cnpm/cnpmcore/commit/3a3aa818a3d5aed964a06f1624c98e0e3e90410a)), closes [#742](https://github.com/cnpm/cnpmcore/issues/742) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc1fbd942..c91e1346c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [3.72.0](https://github.com/cnpm/cnpmcore/compare/v3.71.3...v3.72.0) (2025-02-07) + + +### Features + +* **mirror:** add chromium-headless-shell ([#748](https://github.com/cnpm/cnpmcore/issues/748)) ([3a3aa81](https://github.com/cnpm/cnpmcore/commit/3a3aa818a3d5aed964a06f1624c98e0e3e90410a)), closes [#742](https://github.com/cnpm/cnpmcore/issues/742) + ## [3.71.3](https://github.com/cnpm/cnpmcore/compare/v3.71.2...v3.71.3) (2024-12-23) diff --git a/package.json b/package.json index 9187ef98e..93db79635 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cnpmcore", - "version": "3.71.3", + "version": "3.72.0", "description": "Private NPM Registry for Enterprise", "files": [ "dist/**/*"