mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
devops: support frequent minor releases of MacOS BigSur. (#5016)
Pre-BigSur, MacOS updates were labeled as "minor" releases, so we had to bake separate builds for different 10.X releases. In BigSur era, it doesn't seem to be the case, so for now we can re-use our BigSur builds across all BigSur versions (11.0, 11.1 and 11.2). If we ever need to have a custom build for some bigsur minor version, e.g. `11.6`, we'll have a new browser platform along with generic `mac11` platform. Fixes #4775.
This commit is contained in:
parent
1648d23551
commit
ff20b9d107
@ -67,8 +67,7 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br
|
|||||||
['mac10.13', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
['mac10.13', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
||||||
['mac10.14', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
['mac10.14', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
||||||
['mac10.15', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
['mac10.15', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
||||||
['mac11.0', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
['mac11', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
||||||
['mac11.1', '%s/chromium-browser-snapshots/Mac/%d/chrome-mac.zip'],
|
|
||||||
['win32', '%s/chromium-browser-snapshots/Win/%d/chrome-win.zip'],
|
['win32', '%s/chromium-browser-snapshots/Win/%d/chrome-win.zip'],
|
||||||
['win64', '%s/chromium-browser-snapshots/Win_x64/%d/chrome-win.zip'],
|
['win64', '%s/chromium-browser-snapshots/Win_x64/%d/chrome-win.zip'],
|
||||||
]).get(platform) :
|
]).get(platform) :
|
||||||
@ -78,10 +77,8 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br
|
|||||||
['mac10.13', '%s/builds/chromium/%s/chromium-mac.zip'],
|
['mac10.13', '%s/builds/chromium/%s/chromium-mac.zip'],
|
||||||
['mac10.14', '%s/builds/chromium/%s/chromium-mac.zip'],
|
['mac10.14', '%s/builds/chromium/%s/chromium-mac.zip'],
|
||||||
['mac10.15', '%s/builds/chromium/%s/chromium-mac.zip'],
|
['mac10.15', '%s/builds/chromium/%s/chromium-mac.zip'],
|
||||||
['mac11.0', '%s/builds/chromium/%s/chromium-mac.zip'],
|
['mac11', '%s/builds/chromium/%s/chromium-mac.zip'],
|
||||||
['mac11.0-arm64', '%s/builds/chromium/%s/chromium-mac-arm64.zip'],
|
['mac11-arm64', '%s/builds/chromium/%s/chromium-mac-arm64.zip'],
|
||||||
['mac11.1', '%s/builds/chromium/%s/chromium-mac.zip'],
|
|
||||||
['mac11.1-arm64', '%s/builds/chromium/%s/chromium-mac-arm64.zip'],
|
|
||||||
['win32', '%s/builds/chromium/%s/chromium-win32.zip'],
|
['win32', '%s/builds/chromium/%s/chromium-win32.zip'],
|
||||||
['win64', '%s/builds/chromium/%s/chromium-win64.zip'],
|
['win64', '%s/builds/chromium/%s/chromium-win64.zip'],
|
||||||
]).get(platform);
|
]).get(platform);
|
||||||
@ -96,8 +93,7 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br
|
|||||||
['mac10.13', '%s/builds/firefox/%s/firefox-mac.zip'],
|
['mac10.13', '%s/builds/firefox/%s/firefox-mac.zip'],
|
||||||
['mac10.14', '%s/builds/firefox/%s/firefox-mac.zip'],
|
['mac10.14', '%s/builds/firefox/%s/firefox-mac.zip'],
|
||||||
['mac10.15', '%s/builds/firefox/%s/firefox-mac.zip'],
|
['mac10.15', '%s/builds/firefox/%s/firefox-mac.zip'],
|
||||||
['mac11.0', '%s/builds/firefox/%s/firefox-mac.zip'],
|
['mac11', '%s/builds/firefox/%s/firefox-mac.zip'],
|
||||||
['mac11.1', '%s/builds/firefox/%s/firefox-mac.zip'],
|
|
||||||
['win32', '%s/builds/firefox/%s/firefox-win32.zip'],
|
['win32', '%s/builds/firefox/%s/firefox-win32.zip'],
|
||||||
['win64', '%s/builds/firefox/%s/firefox-win64.zip'],
|
['win64', '%s/builds/firefox/%s/firefox-win64.zip'],
|
||||||
]).get(platform) :
|
]).get(platform) :
|
||||||
@ -107,10 +103,8 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br
|
|||||||
['mac10.13', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
['mac10.13', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
||||||
['mac10.14', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
['mac10.14', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
||||||
['mac10.15', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
['mac10.15', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
||||||
['mac11.0', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
['mac11', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
||||||
['mac11.0-arm64', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
['mac11-arm64', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
||||||
['mac11.1', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
|
||||||
['mac11.1-arm64', '%s/builds/firefox/%s/firefox-mac-10.14.zip'],
|
|
||||||
['win32', '%s/builds/firefox/%s/firefox-win32.zip'],
|
['win32', '%s/builds/firefox/%s/firefox-win32.zip'],
|
||||||
['win64', '%s/builds/firefox/%s/firefox-win64.zip'],
|
['win64', '%s/builds/firefox/%s/firefox-win64.zip'],
|
||||||
]).get(platform);
|
]).get(platform);
|
||||||
@ -125,8 +119,7 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br
|
|||||||
['mac10.13', undefined],
|
['mac10.13', undefined],
|
||||||
['mac10.14', '%s/builds/webkit/%s/minibrowser-mac-10.14.zip'],
|
['mac10.14', '%s/builds/webkit/%s/minibrowser-mac-10.14.zip'],
|
||||||
['mac10.15', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'],
|
['mac10.15', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'],
|
||||||
['mac11.0', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'],
|
['mac11', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'],
|
||||||
['mac11.1', '%s/builds/webkit/%s/minibrowser-mac-10.15.zip'],
|
|
||||||
['win32', '%s/builds/webkit/%s/minibrowser-win64.zip'],
|
['win32', '%s/builds/webkit/%s/minibrowser-win64.zip'],
|
||||||
['win64', '%s/builds/webkit/%s/minibrowser-win64.zip'],
|
['win64', '%s/builds/webkit/%s/minibrowser-win64.zip'],
|
||||||
]).get(platform) :
|
]).get(platform) :
|
||||||
@ -136,10 +129,8 @@ function getDownloadUrl(browserName: BrowserName, revision: number, platform: Br
|
|||||||
['mac10.13', undefined],
|
['mac10.13', undefined],
|
||||||
['mac10.14', '%s/builds/webkit/%s/webkit-mac-10.14.zip'],
|
['mac10.14', '%s/builds/webkit/%s/webkit-mac-10.14.zip'],
|
||||||
['mac10.15', '%s/builds/webkit/%s/webkit-mac-10.15.zip'],
|
['mac10.15', '%s/builds/webkit/%s/webkit-mac-10.15.zip'],
|
||||||
['mac11.0', '%s/builds/webkit/%s/webkit-mac-10.15.zip'],
|
['mac11', '%s/builds/webkit/%s/webkit-mac-10.15.zip'],
|
||||||
['mac11.0-arm64', '%s/builds/webkit/%s/webkit-mac-11.0-arm64.zip'],
|
['mac11-arm64', '%s/builds/webkit/%s/webkit-mac-11.0-arm64.zip'],
|
||||||
['mac11.1', '%s/builds/webkit/%s/webkit-mac-10.15.zip'],
|
|
||||||
['mac11.1-arm64', '%s/builds/webkit/%s/webkit-mac-11.0-arm64.zip'],
|
|
||||||
['win32', '%s/builds/webkit/%s/webkit-win64.zip'],
|
['win32', '%s/builds/webkit/%s/webkit-win64.zip'],
|
||||||
['win64', '%s/builds/webkit/%s/webkit-win64.zip'],
|
['win64', '%s/builds/webkit/%s/webkit-win64.zip'],
|
||||||
]).get(platform);
|
]).get(platform);
|
||||||
|
@ -22,7 +22,7 @@ import { getUbuntuVersionSync } from './ubuntuVersion';
|
|||||||
import { getFromENV } from './utils';
|
import { getFromENV } from './utils';
|
||||||
|
|
||||||
export type BrowserName = 'chromium'|'webkit'|'firefox';
|
export type BrowserName = 'chromium'|'webkit'|'firefox';
|
||||||
export type BrowserPlatform = 'win32'|'win64'|'mac10.13'|'mac10.14'|'mac10.15'|'mac11.0'|'mac11.0-arm64'|'mac11.1'|'mac11.1-arm64'|'ubuntu18.04'|'ubuntu20.04';
|
export type BrowserPlatform = 'win32'|'win64'|'mac10.13'|'mac10.14'|'mac10.15'|'mac11'|'mac11-arm64'|'ubuntu18.04'|'ubuntu20.04';
|
||||||
export type BrowserDescriptor = {
|
export type BrowserDescriptor = {
|
||||||
name: BrowserName,
|
name: BrowserName,
|
||||||
revision: string,
|
revision: string,
|
||||||
@ -32,15 +32,19 @@ export type BrowserDescriptor = {
|
|||||||
export const hostPlatform = ((): BrowserPlatform => {
|
export const hostPlatform = ((): BrowserPlatform => {
|
||||||
const platform = os.platform();
|
const platform = os.platform();
|
||||||
if (platform === 'darwin') {
|
if (platform === 'darwin') {
|
||||||
const macVersion = execSync('sw_vers -productVersion', {
|
const [major, minor] = execSync('sw_vers -productVersion', {
|
||||||
stdio: ['ignore', 'pipe', 'ignore']
|
stdio: ['ignore', 'pipe', 'ignore']
|
||||||
}).toString('utf8').trim().split('.').slice(0, 2).join('.');
|
}).toString('utf8').trim().split('.').map(x => parseInt(x, 10));
|
||||||
let arm64 = false;
|
let arm64 = false;
|
||||||
if (!macVersion.startsWith('10.')) {
|
// BigSur is the first version that might run on Apple Silicon.
|
||||||
|
if (major >= 11) {
|
||||||
arm64 = execSync('sysctl -in hw.optional.arm64', {
|
arm64 = execSync('sysctl -in hw.optional.arm64', {
|
||||||
stdio: ['ignore', 'pipe', 'ignore']
|
stdio: ['ignore', 'pipe', 'ignore']
|
||||||
}).toString().trim() === '1';
|
}).toString().trim() === '1';
|
||||||
}
|
}
|
||||||
|
// We do not want to differentiate between minor big sur releases
|
||||||
|
// since they don't change core APIs so far.
|
||||||
|
const macVersion = major === 10 ? `${major}.${minor}` : `${major}`;
|
||||||
const archSuffix = arm64 ? '-arm64' : '';
|
const archSuffix = arm64 ? '-arm64' : '';
|
||||||
return `mac${macVersion}${archSuffix}` as BrowserPlatform;
|
return `mac${macVersion}${archSuffix}` as BrowserPlatform;
|
||||||
}
|
}
|
||||||
@ -92,10 +96,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor):
|
|||||||
['mac10.13', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
['mac10.13', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
||||||
['mac10.14', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
['mac10.14', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
||||||
['mac10.15', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
['mac10.15', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
||||||
['mac11.0', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
['mac11', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
||||||
['mac11.0-arm64', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
['mac11-arm64', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
||||||
['mac11.1', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
|
||||||
['mac11.1-arm64', ['chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium']],
|
|
||||||
['win32', ['chrome-win', 'chrome.exe']],
|
['win32', ['chrome-win', 'chrome.exe']],
|
||||||
['win64', ['chrome-win', 'chrome.exe']],
|
['win64', ['chrome-win', 'chrome.exe']],
|
||||||
]).get(hostPlatform);
|
]).get(hostPlatform);
|
||||||
@ -108,10 +110,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor):
|
|||||||
['mac10.13', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
['mac10.13', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
||||||
['mac10.14', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
['mac10.14', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
||||||
['mac10.15', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
['mac10.15', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
||||||
['mac11.0', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
['mac11', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
||||||
['mac11.0-arm64', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
['mac11-arm64', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
||||||
['mac11.1', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
|
||||||
['mac11.1-arm64', ['firefox', 'Nightly.app', 'Contents', 'MacOS', 'firefox']],
|
|
||||||
['win32', ['firefox', 'firefox.exe']],
|
['win32', ['firefox', 'firefox.exe']],
|
||||||
['win64', ['firefox', 'firefox.exe']],
|
['win64', ['firefox', 'firefox.exe']],
|
||||||
]).get(hostPlatform);
|
]).get(hostPlatform);
|
||||||
@ -124,10 +124,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor):
|
|||||||
['mac10.13', undefined],
|
['mac10.13', undefined],
|
||||||
['mac10.14', ['pw_run.sh']],
|
['mac10.14', ['pw_run.sh']],
|
||||||
['mac10.15', ['pw_run.sh']],
|
['mac10.15', ['pw_run.sh']],
|
||||||
['mac11.0', ['pw_run.sh']],
|
['mac11', ['pw_run.sh']],
|
||||||
['mac11.0-arm64', ['pw_run.sh']],
|
['mac11-arm64', ['pw_run.sh']],
|
||||||
['mac11.1', ['pw_run.sh']],
|
|
||||||
['mac11.1-arm64', ['pw_run.sh']],
|
|
||||||
['win32', ['Playwright.exe']],
|
['win32', ['Playwright.exe']],
|
||||||
['win64', ['Playwright.exe']],
|
['win64', ['Playwright.exe']],
|
||||||
]).get(hostPlatform);
|
]).get(hostPlatform);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user