feat(test runner): rework how tsconfig is applied #22688
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "tests 1" | |
on: | |
push: | |
branches: | |
- main | |
- release-* | |
pull_request: | |
paths-ignore: | |
- 'browser_patches/**' | |
- 'docs/**' | |
branches: | |
- main | |
- release-* | |
concurrency: | |
# For pull requests, cancel all currently-running jobs for this workflow | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
# Force terminal colors. @see https://www.npmjs.com/package/colors | |
FORCE_COLOR: 1 | |
FLAKINESS_CONNECTION_STRING: ${{ secrets.FLAKINESS_CONNECTION_STRING }} | |
ELECTRON_SKIP_BINARY_DOWNLOAD: 1 | |
jobs: | |
test_linux: | |
name: ${{ matrix.os }} (${{ matrix.browser }} - Node.js ${{ matrix.node-version }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
browser: [chromium, firefox, webkit] | |
os: [ubuntu-22.04] | |
node-version: [18] | |
include: | |
- os: ubuntu-22.04 | |
node-version: 16 | |
browser: chromium | |
- os: ubuntu-22.04 | |
node-version: 20 | |
browser: chromium | |
runs-on: ${{ matrix.os }} | |
env: | |
PWTEST_BOT_NAME: "${{ matrix.browser }}-${{ matrix.os }}-node${{ matrix.node-version }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- run: npm ci | |
env: | |
DEBUG: pw:install | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
- run: npm run build | |
- run: npx playwright install --with-deps ${{ matrix.browser }} chromium | |
- run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=${{ matrix.browser }}-* | |
- run: node tests/config/checkCoverage.js ${{ matrix.browser }} | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: always() | |
shell: bash | |
- name: Upload blob report | |
if: always() | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: blob-report | |
job_name: ${{ env.PWTEST_BOT_NAME }} | |
test_linux_chromium_tot: | |
name: ${{ matrix.os }} (chromium tip-of-tree) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04] | |
runs-on: ${{ matrix.os }} | |
env: | |
PWTEST_BOT_NAME: "${{ matrix.os }}-chromium-tip-of-tree" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- run: npm ci | |
env: | |
DEBUG: pw:install | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
- run: npm run build | |
- run: npx playwright install --with-deps chromium-tip-of-tree | |
- run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=chromium-* | |
env: | |
PWTEST_CHANNEL: chromium-tip-of-tree | |
PWTEST_BOT_NAME: "${{ matrix.os }}-chromium-tip-of-tree" | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: always() | |
shell: bash | |
- name: Upload blob report | |
if: always() | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: blob-report | |
job_name: ${{ env.PWTEST_BOT_NAME }} | |
test_test_runner: | |
name: Test Runner | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
node-version: [18] | |
shardIndex: [1, 2] | |
shardTotal: [2] | |
include: | |
- os: ubuntu-latest | |
node-version: 16 | |
shardIndex: 1 | |
shardTotal: 2 | |
- os: ubuntu-latest | |
node-version: 16 | |
shardIndex: 2 | |
shardTotal: 2 | |
- os: ubuntu-latest | |
node-version: 20 | |
shardIndex: 1 | |
shardTotal: 2 | |
- os: ubuntu-latest | |
node-version: 20 | |
shardIndex: 2 | |
shardTotal: 2 | |
runs-on: ${{ matrix.os }} | |
env: | |
PWTEST_BOT_NAME: "${{ matrix.os }}-node${{ matrix.node-version }}-${{ matrix.shardIndex }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{matrix.node-version}} | |
- run: npm ci | |
env: | |
DEBUG: pw:install | |
- run: npm run build | |
- run: npx playwright install --with-deps | |
- run: npm run ttest -- --shard ${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | |
if: matrix.os != 'ubuntu-latest' | |
- run: xvfb-run npm run ttest -- --shard ${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | |
if: matrix.os == 'ubuntu-latest' | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: always() | |
shell: bash | |
- name: Upload blob report | |
if: always() | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: blob-report | |
job_name: ${{ env.PWTEST_BOT_NAME }} | |
test_web_components: | |
name: Web Components | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- run: npm ci | |
env: | |
DEBUG: pw:install | |
- run: npm run build | |
- run: npx playwright install --with-deps | |
- run: npm run test-html-reporter | |
env: | |
PWTEST_BOT_NAME: "web-components-html-reporter" | |
- name: Upload blob report | |
if: always() | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: packages/html-reporter/blob-report | |
job_name: "web-components-html-reporter" | |
- run: npm run test-web | |
if: always() | |
env: | |
PWTEST_BOT_NAME: "web-components-web" | |
- name: Upload blob report | |
if: always() | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: packages/web/blob-report | |
job_name: "web-components-web" | |
test_vscode_extension: | |
name: VSCode Extension | |
runs-on: ubuntu-latest | |
env: | |
PWTEST_BOT_NAME: "vscode-extension" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- run: npm ci | |
env: | |
DEBUG: pw:install | |
- run: npm run build | |
- run: npx playwright install chromium | |
- name: Checkout extension | |
run: git clone https://github.com/microsoft/playwright-vscode.git | |
- name: Print extension revision | |
run: git rev-parse HEAD | |
working-directory: ./playwright-vscode | |
- name: Remove @playwright/test from extension dependencies | |
run: node -e "const p = require('./package.json'); delete p.devDependencies['@playwright/test']; fs.writeFileSync('./package.json', JSON.stringify(p, null, 2));" | |
working-directory: ./playwright-vscode | |
- name: Build extension | |
run: npm install && npm run build | |
working-directory: ./playwright-vscode | |
- name: Run extension tests | |
run: npm run test -- --workers=1 | |
working-directory: ./playwright-vscode | |
- name: Upload blob report | |
if: always() | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: playwright-vscode/blob-report | |
job_name: ${{ env.PWTEST_BOT_NAME }} | |
test_package_installations: | |
name: "Installation Test ${{ matrix.os }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
env: | |
PWTEST_BOT_NAME: "package-installations-${{ matrix.os }}" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- run: npm ci | |
env: | |
DEBUG: pw:install | |
- run: npm run build | |
- run: npx playwright install --with-deps | |
- run: npm install -g yarn@1 | |
- run: npm install -g pnpm@8 | |
- run: npm run itest | |
if: matrix.os != 'ubuntu-latest' | |
- run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run itest | |
if: matrix.os == 'ubuntu-latest' | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: always() | |
shell: bash | |
- name: Upload blob report | |
if: always() | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: blob-report | |
job_name: ${{ env.PWTEST_BOT_NAME }} |