mirror of
https://github.com/microsoft/playwright.git
synced 2026-09-14 14:08:10 +08:00
3dd248776a
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
275 lines
11 KiB
YAML
275 lines
11 KiB
YAML
name: "tests 2"
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- release-*
|
|
pull_request:
|
|
types: [ labeled ]
|
|
branches:
|
|
- main
|
|
- release-*
|
|
|
|
env:
|
|
# Force terminal colors. @see https://www.npmjs.com/package/colors
|
|
FORCE_COLOR: 1
|
|
|
|
permissions:
|
|
id-token: write # This is required for OIDC login (azure/login) to succeed
|
|
contents: read # This is required for actions/checkout to succeed
|
|
|
|
jobs:
|
|
test_mac:
|
|
name: ${{ matrix.os }} (${{ matrix.browser }})
|
|
if: ${{ github.event_name == 'push' || github.event.label.name == 'CQ1' }}
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# Intel: *-large
|
|
# Arm64: *-xlarge
|
|
os: [macos-15-large, macos-15-xlarge]
|
|
browser: [chromium, firefox, webkit]
|
|
include:
|
|
- os: macos-14-xlarge
|
|
browser: chromium
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
browsers-to-install: ${{ matrix.browser }} chromium
|
|
command: npm run test -- --project=${{ matrix.browser }}-*
|
|
bot-name: "${{ matrix.browser }}-${{ matrix.os }}"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
|
|
test_win:
|
|
name: "Windows"
|
|
if: ${{ github.event_name == 'push' || github.event.label.name == 'CQ1' }}
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
browser: [chromium, firefox, webkit]
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
browsers-to-install: ${{ matrix.browser }} chromium
|
|
command: npm run test -- --project=${{ matrix.browser }}-* ${{ matrix.browser == 'firefox' && '--workers 1' || '' }}
|
|
bot-name: "${{ matrix.browser }}-windows-latest"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
|
|
test-package-installations-other-node-versions:
|
|
name: "Installation Test ${{ matrix.os }} (${{ matrix.node_version }})"
|
|
if: ${{ github.event_name == 'push' || github.event.label.name == 'CQ1' }}
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
node_version: 20
|
|
- os: ubuntu-latest
|
|
node_version: 24
|
|
- os: ubuntu-latest
|
|
node_version: 26
|
|
timeout-minutes: 30
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- run: npm install -g yarn@1
|
|
- run: npm install -g pnpm@8
|
|
- name: Setup Ubuntu Binary Installation # TODO: Remove when https://github.com/electron/electron/issues/42510 is fixed
|
|
if: ${{ runner.os == 'Linux' }}
|
|
run: |
|
|
if grep -q "Ubuntu 24" /etc/os-release; then
|
|
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
|
|
fi
|
|
shell: bash
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
node-version: ${{ matrix.node_version }}
|
|
command: npm run itest
|
|
bot-name: "package-installations-${{ matrix.os }}-node${{ matrix.node_version }}"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
|
|
driver_linux:
|
|
name: "Driver"
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
strategy:
|
|
fail-fast: false
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
browsers-to-install: chromium
|
|
command: npm run ctest
|
|
bot-name: "driver"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
env:
|
|
PWTEST_MODE: driver
|
|
|
|
tracing_linux:
|
|
name: Tracing ${{ matrix.browser }}
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- browser: chromium
|
|
runs-on: ubuntu-22.04
|
|
- browser: firefox
|
|
runs-on: ubuntu-22.04
|
|
# See https://github.com/microsoft/playwright/issues/35586
|
|
- browser: webkit
|
|
runs-on: ubuntu-24.04
|
|
runs-on: ${{ matrix.runs-on }}
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
browsers-to-install: ${{ matrix.browser }} chromium
|
|
command: npm run test -- --project=${{ matrix.browser }}-*
|
|
bot-name: "tracing-${{ matrix.browser }}"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
env:
|
|
PWTEST_TRACE: 1
|
|
|
|
test_chromium_channels:
|
|
name: Test ${{ matrix.channel }} on ${{ matrix.runs-on }}
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
runs-on: ${{ matrix.runs-on }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- channel: chrome
|
|
runs-on: ubuntu-22.04
|
|
- channel: chrome
|
|
runs-on: macos-latest
|
|
- channel: chrome
|
|
runs-on: windows-latest
|
|
- channel: chrome-beta
|
|
runs-on: ubuntu-22.04
|
|
- channel: msedge
|
|
runs-on: windows-latest
|
|
- channel: msedge-dev
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
browsers-to-install: ${{ matrix.channel }}
|
|
command: npm run ctest
|
|
bot-name: ${{ matrix.channel }}-${{ matrix.runs-on }}
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
env:
|
|
PWTEST_CHANNEL: ${{ matrix.channel }}
|
|
|
|
test_android:
|
|
name: Android
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
runs-on: playwright-x64-ubuntu24-64-core
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0
|
|
with:
|
|
distribution: 'temurin'
|
|
java-version: '21'
|
|
- name: Enable KVM group perms
|
|
run: |
|
|
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
|
sudo udevadm control --reload-rules
|
|
sudo udevadm trigger --name-match=kvm
|
|
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
with:
|
|
node-version: 22
|
|
- name: Create Android Emulator
|
|
run: utils/avd_recreate.sh
|
|
- name: Start Android Emulator
|
|
run: utils/avd_start.sh
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
browsers-to-install: android
|
|
command: npm run atest
|
|
bot-name: "android"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
|
|
test_clock_frozen_time_test_runner:
|
|
name: time test runner - ${{ matrix.clock }}
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
runs-on: ubuntu-22.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:
|
|
clock: [frozen, realtime]
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
node-version: 22
|
|
command: npm run ttest
|
|
bot-name: "${{ matrix.clock }}-time-runner-chromium-linux"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|
|
env:
|
|
PW_CLOCK: ${{ matrix.clock }}
|
|
|
|
test_electron:
|
|
name: Electron - ${{ matrix.os }}
|
|
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
permissions:
|
|
id-token: write # This is required for OIDC login (azure/login) to succeed
|
|
contents: read # This is required for actions/checkout to succeed
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- name: Setup Ubuntu Binary Installation # TODO: Remove when https://github.com/electron/electron/issues/42510 is fixed
|
|
if: ${{ runner.os == 'Linux' }}
|
|
run: |
|
|
if grep -q "Ubuntu 24" /etc/os-release; then
|
|
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
|
|
fi
|
|
shell: bash
|
|
# Prevent stalling when macOS decides to show the reopen windows prompt
|
|
# after killing enough Electron processes. See https://github.com/electron/electron/pull/51488.
|
|
- name: Turn off the reopen windows prompt on macOS
|
|
if: ${{ matrix.os == 'macos-latest' }}
|
|
run: defaults write com.github.Electron ApplePersistenceIgnoreState YES
|
|
shell: bash
|
|
- uses: ./.github/actions/run-test
|
|
with:
|
|
browsers-to-install: chromium
|
|
setup-command: npx install-electron --no
|
|
command: npm run etest
|
|
bot-name: "electron-${{ matrix.os }}"
|
|
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
|
|
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
|
|
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
|