devops: run BiDi tests (#32493)
This commit is contained in:
parent
f3ada9c654
commit
718bd9b35f
42
.github/workflows/tests_bidi.yml
vendored
Normal file
42
.github/workflows/tests_bidi.yml
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
name: tests BiDi
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- .github/workflows/tests_bidi.yml
|
||||||
|
schedule:
|
||||||
|
# Run every day at midnight
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
|
env:
|
||||||
|
FORCE_COLOR: 1
|
||||||
|
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test_bidi:
|
||||||
|
name: BiDi
|
||||||
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
permissions:
|
||||||
|
id-token: write # This is required for OIDC login (azure/login) to succeed
|
||||||
|
contents: read # This is required for actions/checkout to succeed
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
# TODO: add Firefox
|
||||||
|
channel: [bidi-chrome-stable]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
- run: npm ci
|
||||||
|
env:
|
||||||
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'
|
||||||
|
- run: npm run build
|
||||||
|
- run: npx playwright install --with-deps chromium
|
||||||
|
- name: Run tests
|
||||||
|
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run biditest -- --project=${{ matrix.channel }}*
|
||||||
|
|
@ -354,7 +354,7 @@ function readDescriptors(browsersJSON: BrowsersJSON) {
|
||||||
|
|
||||||
export type BrowserName = 'chromium' | 'firefox' | 'webkit' | 'bidi';
|
export type BrowserName = 'chromium' | 'firefox' | 'webkit' | 'bidi';
|
||||||
type InternalTool = 'ffmpeg' | 'firefox-beta' | 'chromium-tip-of-tree' | 'android';
|
type InternalTool = 'ffmpeg' | 'firefox-beta' | 'chromium-tip-of-tree' | 'android';
|
||||||
type BidiChannel = 'bidi-firefox-stable' | 'bidi-chrome-canary';
|
type BidiChannel = 'bidi-firefox-stable' | 'bidi-chrome-canary' | 'bidi-chrome-stable';
|
||||||
type ChromiumChannel = 'chrome' | 'chrome-beta' | 'chrome-dev' | 'chrome-canary' | 'msedge' | 'msedge-beta' | 'msedge-dev' | 'msedge-canary';
|
type ChromiumChannel = 'chrome' | 'chrome-beta' | 'chrome-dev' | 'chrome-canary' | 'msedge' | 'msedge-beta' | 'msedge-dev' | 'msedge-canary';
|
||||||
const allDownloadable = ['chromium', 'firefox', 'webkit', 'ffmpeg', 'firefox-beta', 'chromium-tip-of-tree'];
|
const allDownloadable = ['chromium', 'firefox', 'webkit', 'ffmpeg', 'firefox-beta', 'chromium-tip-of-tree'];
|
||||||
|
|
||||||
|
|
@ -530,6 +530,11 @@ export class Registry {
|
||||||
'darwin': '/Applications/Firefox.app/Contents/MacOS/firefox',
|
'darwin': '/Applications/Firefox.app/Contents/MacOS/firefox',
|
||||||
'win32': '\\Mozilla Firefox\\firefox.exe',
|
'win32': '\\Mozilla Firefox\\firefox.exe',
|
||||||
}));
|
}));
|
||||||
|
this._executables.push(this._createBidiChannel('bidi-chrome-stable', {
|
||||||
|
'linux': '/opt/google/chrome/chrome',
|
||||||
|
'darwin': '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
||||||
|
'win32': `\\Google\\Chrome\\Application\\chrome.exe`,
|
||||||
|
}));
|
||||||
this._executables.push(this._createBidiChannel('bidi-chrome-canary', {
|
this._executables.push(this._createBidiChannel('bidi-chrome-canary', {
|
||||||
'linux': '',
|
'linux': '',
|
||||||
'darwin': '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
|
'darwin': '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,9 @@ const config: Config<PlaywrightWorkerOptions & PlaywrightTestOptions & TestModeW
|
||||||
expect: {
|
expect: {
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
},
|
},
|
||||||
maxFailures: 200,
|
maxFailures: 0,
|
||||||
timeout: 30000,
|
timeout: 15 * 1000,
|
||||||
globalTimeout: 5400000,
|
globalTimeout: 30 * 60 * 1000,
|
||||||
workers: process.env.CI ? 2 : undefined,
|
workers: process.env.CI ? 2 : undefined,
|
||||||
fullyParallel: !process.env.CI,
|
fullyParallel: !process.env.CI,
|
||||||
forbidOnly: !!process.env.CI,
|
forbidOnly: !!process.env.CI,
|
||||||
|
|
@ -63,7 +63,7 @@ if (executablePath && !process.env.TEST_WORKER_INDEX)
|
||||||
console.error(`Using executable at ${executablePath}`);
|
console.error(`Using executable at ${executablePath}`);
|
||||||
const testIgnore: RegExp[] = [];
|
const testIgnore: RegExp[] = [];
|
||||||
const browserToChannels = {
|
const browserToChannels = {
|
||||||
'_bidiChromium': ['bidi-chrome-canary'],
|
'_bidiChromium': ['bidi-chrome-stable'],
|
||||||
'_bidiFirefox': ['bidi-firefox-stable'],
|
'_bidiFirefox': ['bidi-firefox-stable'],
|
||||||
};
|
};
|
||||||
for (const [key, channels] of Object.entries(browserToChannels)) {
|
for (const [key, channels] of Object.entries(browserToChannels)) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue