This reverts commit a1cdae6bff.
The problem with this approach is that each job overwrites the zip
artifact whereas previously it was merging all reports in the same
directory. We are going to zip .jsonl files instead.
248 lines
8.1 KiB
YAML
248 lines
8.1 KiB
YAML
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: [16]
|
|
include:
|
|
- os: ubuntu-22.04
|
|
node-version: 18
|
|
browser: chromium
|
|
- os: ubuntu-22.04
|
|
node-version: 20
|
|
browser: chromium
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
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 }}
|
|
env:
|
|
PWTEST_BLOB_REPORT: 1
|
|
PWTEST_BLOB_SUFFIX: "-${{ matrix.os }}-node${{ matrix.node-version }}"
|
|
- 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 to Azure
|
|
if: always() && github.event_name == 'push'
|
|
run: az storage blob upload-batch -s test-results/blob-report -d '$web/run-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha }}' --connection-string "${{ secrets.AZURE_CONNECTION_STRING_FOR_BLOB_REPORT }}"
|
|
- name: Upload blob report to GitHub
|
|
uses: actions/upload-artifact@v3
|
|
if: always() && github.event_name == 'pull_request'
|
|
with:
|
|
name: blob-report-${{ github.run_attempt }}
|
|
path: test-results/blob-report
|
|
retention-days: 30
|
|
- name: Write the pull request number in an file
|
|
if: always() && github.event_name == 'pull_request'
|
|
run: echo '${{ github.event.number }}' > pull_request_number.txt;
|
|
- name: Upload artifact with pull request number
|
|
uses: actions/upload-artifact@v3
|
|
if: always() && github.event_name == 'pull_request'
|
|
with:
|
|
name: pull-request
|
|
path: pull_request_number.txt
|
|
|
|
test_linux_chromium_tot:
|
|
name: ${{ matrix.os }} (chromium tip-of-tree)
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-20.04]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 16
|
|
- 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
|
|
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json
|
|
if: always()
|
|
shell: bash
|
|
|
|
test_test_runner:
|
|
name: Test Runner
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
node-version: [16]
|
|
shard: [1/2, 2/2]
|
|
include:
|
|
- os: ubuntu-latest
|
|
node-version: 18
|
|
shard: 1/2
|
|
- os: ubuntu-latest
|
|
node-version: 18
|
|
shard: 2/2
|
|
- os: ubuntu-latest
|
|
node-version: 20
|
|
shard: 1/2
|
|
- os: ubuntu-latest
|
|
node-version: 20
|
|
shard: 2/2
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
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.shard }}
|
|
env:
|
|
PWTEST_BLOB_REPORT: 1
|
|
PWTEST_BLOB_SUFFIX: "-${{ matrix.os }}-node${{ matrix.node-version }}"
|
|
if: matrix.os != 'ubuntu-latest'
|
|
- run: xvfb-run npm run ttest -- --shard ${{ matrix.shard }}
|
|
env:
|
|
PWTEST_BLOB_REPORT: 1
|
|
PWTEST_BLOB_SUFFIX: "-${{ matrix.os }}-node${{ matrix.node-version }}"
|
|
if: matrix.os == 'ubuntu-latest'
|
|
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json
|
|
if: always()
|
|
shell: bash
|
|
- name: Upload blob report to Azure
|
|
if: always() && github.event_name == 'push'
|
|
run: az storage blob upload-batch -s test-results/blob-report -d '$web/run-${{ github.run_id }}-${{ github.run_attempt }}-${{ github.sha }}' --connection-string "${{ secrets.AZURE_CONNECTION_STRING_FOR_BLOB_REPORT }}"
|
|
- name: Upload blob report to GitHub
|
|
uses: actions/upload-artifact@v3
|
|
if: always() && github.event_name == 'pull_request'
|
|
with:
|
|
name: blob-report-${{ github.run_attempt }}
|
|
path: test-results/blob-report
|
|
retention-days: 30
|
|
- name: Write the pull request number in an file
|
|
if: always() && github.event_name == 'pull_request'
|
|
run: echo '${{ github.event.number }}' > pull_request_number.txt;
|
|
- name: Upload artifact with pull request number
|
|
uses: actions/upload-artifact@v3
|
|
if: always() && github.event_name == 'pull_request'
|
|
with:
|
|
name: pull-request
|
|
path: pull_request_number.txt
|
|
|
|
test_web_components:
|
|
name: Web Components
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 16
|
|
- run: npm ci
|
|
env:
|
|
DEBUG: pw:install
|
|
- run: npm run build
|
|
- run: npx playwright install --with-deps
|
|
- run: npm run test-html-reporter
|
|
- run: npm run test-web
|
|
if: always()
|
|
|
|
test_vscode_extension:
|
|
name: VSCode Extension
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 16
|
|
- 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
|
|
|
|
test-package-installations:
|
|
name: "Installation Test ${{ matrix.os }}"
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- ubuntu-latest
|
|
- macos-latest
|
|
- windows-latest
|
|
timeout-minutes: 30
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 16
|
|
- run: npm ci
|
|
env:
|
|
DEBUG: pw:install
|
|
- run: npm run build
|
|
- run: npx playwright install-deps
|
|
- 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
|
|
|