diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index af52a6b77d..695a94254e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -15,5 +15,5 @@ /src/i18n/strings /src/i18n/strings/en_EN.json @element-hq/element-web-reviewers # Ignore the synapse plugin as this is updated by GHA for docker image updating -/playwright/plugins/homeserver/synapse/index.ts +/playwright/testcontainers/synapse.ts 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 5f9bab029a..f6aad8af7e 100644 --- a/.github/workflows/end-to-end-tests.yaml +++ b/.github/workflows/end-to-end-tests.yaml @@ -111,23 +111,23 @@ jobs: # Run multiple instances in parallel to speed up the tests runner: ${{ fromJSON(needs.build.outputs.runners-matrix) }} project: - # - Chrome - # - Firefox - # - WebKit + - Chrome + - Firefox + - WebKit - Dendrite - Pinecone - isCron: - - ${{ github.event_name == 'schedule' }} - # Skip the non-Chrome runs unless this was a cron trigger - # exclude: - # - isCron: false - # project: Firefox - # - isCron: false - # project: WebKit - # - isCron: false - # project: Dendrite - # - isCron: false - # project: Pinecone + runAllTests: + - true + # Skip the Firefox & Safari runs unless this was a cron trigger or PR has X-Run-All-Tests label + exclude: + - runAllTests: false + project: Firefox + - runAllTests: false + project: WebKit + - runAllTests: false + project: Dendrite + - runAllTests: false + project: Pinecone steps: - uses: actions/checkout@v4 with: @@ -176,7 +176,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/.github/workflows/playwright-image-updates.yaml b/.github/workflows/playwright-image-updates.yaml index ef2dfa1132..e5e2f739c0 100644 --- a/.github/workflows/playwright-image-updates.yaml +++ b/.github/workflows/playwright-image-updates.yaml @@ -17,7 +17,7 @@ jobs: docker pull "$IMAGE" INSPECT=$(docker inspect --format='{{index .RepoDigests 0}}' "$IMAGE") DIGEST=${INSPECT#*@} - sed -i "s/const DOCKER_TAG.*/const DOCKER_TAG = \"develop@$DIGEST\";/" playwright/plugins/homeserver/synapse/index.ts + sed -i "s/const TAG.*/const TAG = \"develop@$DIGEST\";/" playwright/testcontainers/synapse.ts env: IMAGE: ghcr.io/element-hq/synapse:develop 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.