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_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: [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 }}" PWDEBUGIMPL: 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 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 }}