Skip to content

Build & Test

Build & Test #117

Triggered via merge group March 31, 2026 22:07
Status Success
Total duration 32m 13s
Artifacts 24

build-and-test.yaml

on: merge_group
Build Element Web
2m 39s
Build Element Web
Prepare Element Desktop  /  Prepare
39s
Prepare Element Desktop / Prepare
Matrix: playwright_ew
Downstream Playwright tests [element-modules]  /  Run Playwright end-to-end tests & upload html report
5m 3s
Downstream Playwright tests [element-modules] / Run Playwright end-to-end tests & upload html report
Matrix: Desktop Linux
Matrix: Desktop Windows
Desktop macOS  /  Build macOS Universal
16m 33s
Desktop macOS / Build macOS Universal
Desktop macOS  /  ...  /  Test macos
2m 44s
Desktop macOS / Test macOS Universal / Test macos
end-to-end-tests
1m 7s
end-to-end-tests
Fit to window
Zoom out
Zoom in

Annotations

4 errors, 9 warnings, and 13 notices
[Chrome] › playwright/e2e/read-receipts/new-messages-main-timeline.spec.ts:53:13 › Read receipts › new messages › in the main timeline › Reading an older message leaves the room unread @mergequeue: apps/web/playwright/e2e/read-receipts/index.ts#L493
1) [Chrome] › playwright/e2e/read-receipts/new-messages-main-timeline.spec.ts:53:13 › Read receipts › new messages › in the main timeline › Reading an older message leaves the room unread @mergequeue Error: expect(received).toBeLessThan(expected) Expected: < 30 Received: 30 Call Log: - Timeout 5000ms exceeded while waiting on the predicate at read-receipts/index.ts:493 491 | // https://playwright.dev/docs/test-assertions#expectpoll 492 | // .toBeLessThan doesn't have a retry mechanism, so we use .poll > 493 | await expect | ^ 494 | .poll(async () => { 495 | return this.unreadCountForRoomTile(tile); 496 | }) at Helpers.assertUnreadLessThan (/home/runner/work/element-web/element-web/apps/web/playwright/e2e/read-receipts/index.ts:493:9) at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/read-receipts/new-messages-main-timeline.spec.ts:68:17
[Chrome] › playwright/e2e/sliding-sync/sliding-sync.spec.ts:225:5 › Sliding Sync › should show and be able to accept/reject/rescind invites: apps/web/playwright/e2e/sliding-sync/sliding-sync.spec.ts#L41
1) [Chrome] › playwright/e2e/sliding-sync/sliding-sync.spec.ts:225:5 › Sliding Sync › should show and be able to accept/reject/rescind invites Error: expect(locator).toHaveText(expected) failed Locator: getByTestId('room-list').getByTestId('room-name') Timeout: 5000ms - Expected - 1 + Received + 1 Array [ - "Room to Rescind", "Room to Reject", + "Room to Rescind", ] Call log: - Expect "toHaveText" with timeout 5000ms - waiting for getByTestId('room-list').getByTestId('room-name') 3 × locator resolved to 3 elements 6 × locator resolved to 2 elements 39 | test.describe("Sliding Sync", () => { 40 | const checkOrder = async (wantOrder: string[], page: Page) => { > 41 | await expect(page.getByTestId("room-list").getByTestId("room-name")).toHaveText(wantOrder); | ^ 42 | }; 43 | 44 | const bumpRoom = async (roomId: string, app: ElementAppPage) => { at checkOrder (/home/runner/work/element-web/element-web/apps/web/playwright/e2e/sliding-sync/sliding-sync.spec.ts:41:78) at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/sliding-sync/sliding-sync.spec.ts:259:15
[Chrome] › playwright/e2e/crypto/toasts.spec.ts:45:5 › Key storage out of sync toast › should prompt for recovery key if 'enter recovery key' pressed @screenshot: apps/web/playwright/e2e/crypto/toasts.spec.ts#L50
2) [Chrome] › playwright/e2e/crypto/toasts.spec.ts:45:5 › Key storage out of sync toast › should prompt for recovery key if 'enter recovery key' pressed @screenshot Error: expect(locator).toHaveScreenshot(expected) failed Locator: getByRole('alert').first() Timeout: 5000ms Timeout 5000ms exceeded. Snapshot: key-storage-out-of-sync-toast.png Call log: - Expect "toHaveScreenshot(key-storage-out-of-sync-toast.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for getByRole('alert').first() - locator resolved to <div role="alert" class="mx_NonUrgentToastContainer"></div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action 2 × waiting for element to be stable - element is not visible - retrying scroll into view action - waiting 20ms 2 × waiting for element to be stable - element is not visible - retrying scroll into view action - waiting 100ms 9 × waiting for element to be stable - element is not visible - retrying scroll into view action - waiting 500ms - Timeout 5000ms exceeded. 48 | // it would always be checking the same toast, even if another one is now the first. 49 | await expect(page.getByRole("alert")).toHaveCount(2); > 50 | await expect(page.getByRole("alert").first()).toMatchScreenshot( | ^ 51 | "key-storage-out-of-sync-toast.png", 52 | screenshotOptions, 53 | ); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/crypto/toasts.spec.ts:50:55
[Chrome] › playwright/e2e/crypto/device-verification.spec.ts:203:5 › Device verification › Verify device with Recovery Key from settings @no-webkit: apps/web/playwright/e2e/crypto/utils.ts#L201
1) [Chrome] › playwright/e2e/crypto/device-verification.spec.ts:203:5 › Device verification › Verify device with Recovery Key from settings @no-webkit Error: expect(received).toBe(expected) // Object.is equality Expected: true Received: false at crypto/utils.ts:201 199 | if (checkBackupPrivateKeyInCache) { 200 | // The backup key is available locally > 201 | expect(hasBackupPrivateKeyFromCache).toBe(true); | ^ 202 | // The backup key is well-formed 203 | expect(backupPrivateKeyWellFormed).toBe(true); 204 | } at checkDeviceIsConnectedKeyBackup (/home/runner/work/element-web/element-web/apps/web/playwright/e2e/crypto/utils.ts:201:46) at enterRecoveryKeyAndCheckVerified (/home/runner/work/element-web/element-web/apps/web/playwright/e2e/crypto/device-verification.spec.ts:270:9) at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/crypto/device-verification.spec.ts:216:9
Prepare Element Desktop / Prepare
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cardinalby/git-get-release-action@5172c3a026600b1d459b117738c605fabc9e4e44. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Downstream Playwright tests [element-modules] / Run Playwright end-to-end tests & upload html report
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: Eun/http-server-action@f71cec1321f665652a46c40b6852f8e5a68bfcd4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop Linux (system, arm64, true) / Build Linux arm64 SQLCipher system
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop Linux (system, amd64, true) / Build Linux amd64 SQLCipher system
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop Linux (static, arm64, true) / Build Linux arm64 SQLCipher static
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop Linux (static, amd64, true) / Build Linux amd64 SQLCipher static
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop Windows (arm64) / Build Windows arm64
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756, nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop Windows (ia32) / Build Windows ia32
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756, nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Desktop Windows (x64) / Build Windows x64
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756, nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
16 passed (2.0m)
🎭 Playwright Run Summary
1 skipped 6 passed (20.0s)
🎭 Playwright Run Summary
1 skipped 6 passed (20.5s)
🎭 Playwright Run Summary
1 skipped 6 passed (19.1s)
🎭 Playwright Run Summary
1 skipped 6 passed (21.5s)
🎭 Playwright Run Summary
3 skipped 158 passed (13.8m)
🎭 Playwright Run Summary
1 flaky [Chrome] › playwright/e2e/read-receipts/new-messages-main-timeline.spec.ts:53:13 › Read receipts › new messages › in the main timeline › Reading an older message leaves the room unread @mergequeue 45 skipped 124 passed (12.9m)
🎭 Playwright Run Summary
1 skipped 6 passed (27.3s)
🎭 Playwright Run Summary
1 flaky [Chrome] › playwright/e2e/sliding-sync/sliding-sync.spec.ts:225:5 › Sliding Sync › should show and be able to accept/reject/rescind invites 2 skipped 166 passed (18.9m)
🎭 Playwright Run Summary
1 skipped 6 passed (23.2s)
🎭 Playwright Run Summary
1 skipped 6 passed (28.0s)
🎭 Playwright Run Summary
1 skipped 6 passed (19.5s)
🎭 Playwright Run Summary
2 flaky [Chrome] › playwright/e2e/crypto/device-verification.spec.ts:203:5 › Device verification › Verify device with Recovery Key from settings @no-webkit [Chrome] › playwright/e2e/crypto/toasts.spec.ts:45:5 › Key storage out of sync toast › should prompt for recovery key if 'enter recovery key' pressed @screenshot 175 passed (17.2m)

Artifacts

Produced during runtime
Name Size Digest
blob-report-Chrome-1 Expired
19.7 MB
sha256:73d35e2a9f9914a9519fdd8dba0ab3908664022dd6b60702604526f68f2f026c
blob-report-Chrome-2 Expired
8.03 MB
sha256:477688b637ceb3a8bd8f1f1328cf6c680ff34d047490765e0448e5bc432ba0b3
blob-report-Chrome-3 Expired
947 KB
sha256:0732230d68a3a6835e3d6127a4eee55effb2280e6ef21da127106a7d6418e0e6
blob-report-Chrome-4 Expired
6.33 MB
sha256:5ac7e5ad16f44315ecd8dd6cd08119919c7649061911f820e7ee97bc43436af1
blob-report-linux-amd64-sqlcipher-static Expired
10.6 KB
sha256:19fa179b423e00cbd1d78f4f9268a496d052e5a6cbbc0508e6cb465f8ea11b32
blob-report-linux-amd64-sqlcipher-system Expired
10.4 KB
sha256:1d4195157a8ba618475999515f7ed1412e975ae97f2aca64578dcb3f1a2e22e4
blob-report-linux-arm64-sqlcipher-static Expired
10.7 KB
sha256:e1a34868219b7bcca333d9c06f0fd684fa86f77238705ed39f255a20f886d7df
blob-report-linux-arm64-sqlcipher-system Expired
10.4 KB
sha256:bbae0c0711263703c9fb52476b1da6482202fdb3be52a06de9e78512932d5837
blob-report-macos Expired
9.94 KB
sha256:7a96a33b011b69d0708118ced6448a3654372274977856e562326aee722b55f5
blob-report-win-arm64 Expired
9.71 KB
sha256:67b3a4a025b491df88fa5bd262d4f89e66b794c24746de90268855cb7fb9dc8a
blob-report-win-ia32 Expired
9.76 KB
sha256:faa426870c1041b5eee8be3a6ebf294ab167941e381dd7a00b9884cb12c8b183
blob-report-win-x64 Expired
9.49 KB
sha256:ea7c337b6b45547d3e52ed24150e8c3aefed749f02b91d9fb7c9262ddfb89392
desktop-prepare Expired
41.1 MB
sha256:c3d9054433a440f688b8e5fba94fc2501123b5973f5e3076a8bf2de2e1e0190c
html-report Expired
34 MB
sha256:802815adbd6bda4a6cc4175f222462e70494d83b9302f0a35b5e06f997fed425
linux-amd64-sqlcipher-static Expired
287 MB
sha256:434b4257af6baacaf45d7993ae09981af0e84c579bca353458ba19bbbdb2cd53
linux-amd64-sqlcipher-system Expired
284 MB
sha256:c22f8dc03cee6bbc25f081edf8370e67beacb432dfc6c022cdd2c24c23a630cd
linux-arm64-sqlcipher-static Expired
282 MB
sha256:60f61a334a436da4c8d449ab5ad77e51d36ea35fdb341c0c3f1e6fe37ef24230
linux-arm64-sqlcipher-system Expired
279 MB
sha256:3fc8db3effc559bf724432b7040c07258112b0f760c9dc2fd2e2797af1d8dd08
macos Expired
509 MB
sha256:1abc7eb9af92a28d70e6513f6e724976c755bc631d217e4d20db8c64119e8af3
playwright-html-report Expired
302 KB
sha256:e38ef643a2d13f846c5f4a640bb6af9c446961eccac1a2635bfe9250b84f943e
webapp Expired
41.3 MB
sha256:833eb95bee24c9338f51785d8a4b4a61dea98f5aeee6d27ac15108f67c020265
win-arm64 Expired
698 MB
sha256:2c740cc36ffbcf104dd501fdeae665e314ab1e7f92531ac83b6cbf5791146d89
win-ia32 Expired
636 MB
sha256:9e04440c56887eee49f64062e13f6d72825b6764238dc4ea9290890c878dc12d
win-x64 Expired
710 MB
sha256:77b38f2d406362d75a680f9d023b51b8f989e08be1428f8369b3dc9500239942