devops: run BiDi tests (#32493)

This commit is contained in:
Max Schmitt 2024-09-07 09:16:42 +02:00 committed by GitHub
parent f3ada9c654
commit 718bd9b35f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 52 additions and 5 deletions

42
.github/workflows/tests_bidi.yml vendored Normal file
View 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 }}*

View file

@ -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',

View file

@ -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)) {