Skip to content

Add CI to detect stale vis screenshots #1420

Add CI to detect stale vis screenshots

Add CI to detect stale vis screenshots #1420

Triggered via pull request April 22, 2026 16:26
Status Success
Total duration 20m 11s
Artifacts 9

build-and-test.yaml

on: pull_request
Build Element Web
2m 7s
Build Element Web
Prepare Element Desktop  /  Prepare
50s
Prepare Element Desktop / Prepare
Matrix: playwright_ew
Downstream Playwright tests [element-modules]  /  Run Playwright end-to-end tests & upload html report
Downstream Playwright tests [element-modules] / Run Playwright end-to-end tests & upload html report
Matrix: Desktop Linux
Matrix: Desktop Windows
Waiting for pending jobs
Desktop macOS  /  Build macOS Universal
Desktop macOS / Build macOS Universal
Desktop macOS  /  ...  /  test
Desktop macOS / Test macOS Universal / test
end-to-end-tests
31s
end-to-end-tests
Fit to window
Zoom out
Zoom in

Annotations

2 errors, 1 warning, and 5 notices
[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/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot: apps/web/playwright/e2e/oidc/oidc-native.spec.ts#L173
1) [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot Error: expect(locator).toBeVisible() failed Locator: getByText('Confirm your digital identity') Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText('Confirm your digital identity') 171 | // We should be being warned that we need to verify (but we can't) 172 | // richvdh: Again, Element takes several seconds to load on a dev instance > 173 | await expect(page.getByText("Confirm your digital identity")).toBeVisible({ timeout: 10000 }); | ^ 174 | 175 | // And there should be no way to close this prompt 176 | await expect(page.getByRole("button", { name: "Skip verification for now" })).not.toBeVisible(); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/oidc/oidc-native.spec.ts:173:75
Desktop Linux (static, amd64, false) / 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/
🎭 Playwright Run Summary
1 skipped 6 passed (25.1s)
🎭 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 1 skipped 129 passed (10.6m)
🎭 Playwright Run Summary
3 skipped 130 passed (11.3m)
🎭 Playwright Run Summary
132 passed (12.1m)
🎭 Playwright Run Summary
1 flaky [Chrome] › playwright/e2e/oidc/oidc-native.spec.ts:144:9 › OIDC Native › with force_verification on › verify dialog cannot be dismissed @no-firefox @no-webkit @screenshot 1 skipped 129 passed (15.4m)

Artifacts

Produced during runtime
Name Size Digest
blob-report-Chrome-1 Expired
819 KB
sha256:e57e203e17f1c3bb6246f125635b996d6c7538a82d8a596c4daee91f1220c143
blob-report-Chrome-2 Expired
971 KB
sha256:54b63e9bd046be7f2e9e51b892a4698eb78991db333eb3384e5c0123b56ed210
blob-report-Chrome-3 Expired
6.51 MB
sha256:8ac287bed4750bb185e75db01db866ed912d868c5b2210a3d777cac86d454c11
blob-report-Chrome-4 Expired
7.67 MB
sha256:79a034bec80fec87ebf2618814dbc7b22ec39988646f5f6626ae99c1797b7b1c
blob-report-linux-amd64-sqlcipher-static Expired
59.5 KB
sha256:e15f52c64e3bb5fe7041986b213ae29b9155f20e83f3b498a1f35d06a4654cea
desktop-prepare Expired
41.2 MB
sha256:ee98709d5ae2c725bdd587e784851bc3baae2bbf45867f6a4cd91a4004f4b3e0
html-report
14.6 MB
sha256:4ec39dffda0649712fa628170e7c3863c261fb67171319c02c879125268a4aa4
linux-amd64-sqlcipher-static Expired
283 MB
sha256:4f07ce407a379da7f3685107ccd81c02642755ad420d77cc22d1b12712728411
webapp Expired
41.4 MB
sha256:880decb83de2dfca75062cb267f9e209eef582d52237242a5da6392002258466