cherry-pick(#30853): chore: print friendly localhost address from http server #23851
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 | |
ELECTRON_SKIP_BINARY_DOWNLOAD: 1 | |
jobs: | |
test_linux: | |
name: ${{ matrix.os }} (${{ matrix.browser }} - Node.js ${{ matrix.node-version }}) | |
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }} | |
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 }}" | |
permissions: | |
id-token: write # This is required for OIDC login (azure/login) to succeed | |
contents: read # This is required for actions/checkout to succeed | |
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 }}-* | |
- name: Azure Login | |
uses: azure/login@v2 | |
if: ${{ !cancelled() && github.event_name == 'push' && github.repository == 'microsoft/playwright' }} | |
with: | |
client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: ${{ !cancelled() }} | |
shell: bash | |
- name: Upload blob report | |
if: ${{ !cancelled() }} | |
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) | |
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04] | |
runs-on: ${{ matrix.os }} | |
env: | |
PWTEST_BOT_NAME: "${{ matrix.os }}-chromium-tip-of-tree" | |
permissions: | |
id-token: write # This is required for OIDC login (azure/login) to succeed | |
contents: read # This is required for actions/checkout to succeed | |
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" | |
- name: Azure Login | |
uses: azure/login@v2 | |
if: ${{ !cancelled() && github.event_name == 'push' && github.repository == 'microsoft/playwright' }} | |
with: | |
client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: ${{ !cancelled() }} | |
shell: bash | |
- name: Upload blob report | |
if: ${{ !cancelled() }} | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: blob-report | |
job_name: ${{ env.PWTEST_BOT_NAME }} | |
test_test_runner: | |
name: Test Runner | |
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }} | |
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 }}" | |
permissions: | |
id-token: write # This is required for OIDC login (azure/login) to succeed | |
contents: read # This is required for actions/checkout to succeed | |
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' | |
- name: Azure Login | |
uses: azure/login@v2 | |
if: ${{ !cancelled() && github.event_name == 'push' && github.repository == 'microsoft/playwright' }} | |
with: | |
client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: ${{ !cancelled() }} | |
shell: bash | |
- name: Upload blob report | |
if: ${{ !cancelled() }} | |
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: ${{ !cancelled() }} | |
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: ${{ !cancelled() }} | |
env: | |
PWTEST_BOT_NAME: "web-components-web" | |
- name: Upload blob report | |
if: ${{ !cancelled() }} | |
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: ${{ !cancelled() }} | |
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 }}" | |
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }} | |
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 }}" | |
permissions: | |
id-token: write # This is required for OIDC login (azure/login) to succeed | |
contents: read # This is required for actions/checkout to succeed | |
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' | |
- name: Azure Login | |
uses: azure/login@v2 | |
if: ${{ !cancelled() && github.event_name == 'push' && github.repository == 'microsoft/playwright' }} | |
with: | |
client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }} | |
tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }} | |
subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }} | |
- run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json | |
if: ${{ !cancelled() }} | |
shell: bash | |
- name: Upload blob report | |
if: ${{ !cancelled() }} | |
uses: ./.github/actions/upload-blob-report | |
with: | |
report_dir: blob-report | |
job_name: ${{ env.PWTEST_BOT_NAME }} |