diff --git a/.github/labels.yml b/.github/labels.yml index 80c5408c1e..c8a34c4771 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -210,6 +210,9 @@ - name: "X-Upcoming-Release-Blocker" description: "This does not affect the current release cycle but will affect the next one" color: "e99695" +- name: "X-Run-All-Tests" + description: "When applied to PRs, it'll run the full gamut of end-to-end tests on the PR" + color: "ff7979" - name: "Z-Actions" color: "ededed" - name: "Z-Cache-Confusion" diff --git a/.github/workflows/end-to-end-tests.yaml b/.github/workflows/end-to-end-tests.yaml index 6afabdb1fe..4232993fa0 100644 --- a/.github/workflows/end-to-end-tests.yaml +++ b/.github/workflows/end-to-end-tests.yaml @@ -114,13 +114,13 @@ jobs: - Chrome - Firefox - WebKit - isCron: - - ${{ github.event_name == 'schedule' }} - # Skip the Firefox & Safari runs unless this was a cron trigger + runAllTests: + - ${{ github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'X-Run-All-Tests') }} + # Skip the Firefox & Safari runs unless this was a cron trigger or PR has X-Run-All-Tests label exclude: - - isCron: false + - runAllTests: false project: Firefox - - isCron: false + - runAllTests: false project: WebKit steps: - uses: actions/checkout@v4 @@ -170,7 +170,7 @@ jobs: yarn playwright test \ --shard "${{ matrix.runner }}/${{ needs.build.outputs.num-runners }}" \ --project="${{ matrix.project }}" \ - ${{ github.event_name == 'pull_request' && '--grep-invert @mergequeue' || '' }} + ${{ (github.event_name == 'pull_request' && matrix.runAllTests == false ) && '--grep-invert @mergequeue' || '' }} - name: Upload blob report to GitHub Actions Artifacts if: always() diff --git a/docs/playwright.md b/docs/playwright.md index fe44a06ff1..cd19c41b6c 100644 --- a/docs/playwright.md +++ b/docs/playwright.md @@ -227,6 +227,8 @@ has to be disabled in Playwright on Firefox & Webkit to retain routing functiona Anything testing VoIP/microphone will need to have `@no-webkit` as fake microphone functionality is not available there at this time. +If you wish to run all tests in a PR, you can give it the label `X-Run-All-Tests`. + ## Supporter container runtimes We use testcontainers to spin up various instances of Synapse, Matrix Authentication Service, and more.