Skip to content

Consolidate Build & Test CI #8

Consolidate Build & Test CI

Consolidate Build & Test CI #8

Triggered via pull request March 25, 2026 17:19
Status Failure
Total duration 14m 41s
Artifacts 8

build-and-test.yaml

on: pull_request
Build Element Web
2m 20s
Build Element Web
Prepare Element Desktop  /  Prepare
34s
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: build_ed_linux
Matrix: ED Windows
ED macOS  /  Build macOS Universal
4m 51s
ED macOS / Build macOS Universal
ED macOS  /  ...  /  Test macos
2m 11s
ED macOS / Test macOS Universal / Test macos
end-to-end-tests
26s
end-to-end-tests
Fit to window
Zoom out
Zoom in

Annotations

71 errors and 11 warnings
Run Tests [Chrome] 2/6
No files were found with the provided path: blob-report. No artifacts will be uploaded.
Run Tests [Chrome] 2/6
Process completed with exit code 1.
Run Tests [Chrome] 2/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at widgets/stickers.spec.ts:22 20 | const ROOM_NAME_1 = "Sticker Test"; 21 | const ROOM_NAME_2 = "Sticker Test Two"; > 22 | const STICKER_IMAGE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 23 | 24 | function getStickerMessage(contentUri: string, mimetype: string): string { 25 | return JSON.stringify({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/widgets/stickers.spec.ts:22:26
Run Tests [Chrome] 2/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/timeline.spec.ts:26 24 | 25 | const ROOM_NAME = "Test room"; > 26 | const OLD_AVATAR = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 27 | const NEW_AVATAR = fs.readFileSync("playwright/sample-files/element.png"); 28 | const OLD_NAME = "Alan"; 29 | const NEW_NAME = "Alan (away)"; at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/timeline.spec.ts:26:23
Run Tests [Chrome] 2/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/media-preview-settings.spec.ts:13 11 | import { test, expect } from "../../element-web-test"; 12 | > 13 | const MEDIA_FILE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 14 | 15 | test.describe("Media preview settings", () => { 16 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/media-preview-settings.spec.ts:13:23
Run Tests [Chrome] 2/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/element.png' at modules/custom-component.spec.ts:29 27 | }); 28 | > 29 | const IMAGE_FILE = fs.readFileSync("playwright/sample-files/element.png"); | ^ 30 | 31 | test.describe("Custom Component API", () => { 32 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:29:23
Run Tests [Chrome] 2/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at messages/messages.spec.ts:16 14 | import { test, expect } from "../../element-web-test"; 15 | > 16 | const MEDIA_FILE = readFileSync("playwright/sample-files/riot.png"); | ^ 17 | 18 | async function waitForMessageSentStatus(msgTile: Locator): Promise<void> { 19 | await expect(msgTile.getByRole("status")).toHaveAccessibleName("Your message was sent"); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/messages/messages.spec.ts:16:20
Run Tests [Chrome] 4/6
No files were found with the provided path: blob-report. No artifacts will be uploaded.
Run Tests [Chrome] 4/6
Process completed with exit code 1.
Run Tests [Chrome] 4/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at widgets/stickers.spec.ts:22 20 | const ROOM_NAME_1 = "Sticker Test"; 21 | const ROOM_NAME_2 = "Sticker Test Two"; > 22 | const STICKER_IMAGE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 23 | 24 | function getStickerMessage(contentUri: string, mimetype: string): string { 25 | return JSON.stringify({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/widgets/stickers.spec.ts:22:26
Run Tests [Chrome] 4/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/timeline.spec.ts:26 24 | 25 | const ROOM_NAME = "Test room"; > 26 | const OLD_AVATAR = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 27 | const NEW_AVATAR = fs.readFileSync("playwright/sample-files/element.png"); 28 | const OLD_NAME = "Alan"; 29 | const NEW_NAME = "Alan (away)"; at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/timeline.spec.ts:26:23
Run Tests [Chrome] 4/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/media-preview-settings.spec.ts:13 11 | import { test, expect } from "../../element-web-test"; 12 | > 13 | const MEDIA_FILE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 14 | 15 | test.describe("Media preview settings", () => { 16 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/media-preview-settings.spec.ts:13:23
Run Tests [Chrome] 4/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/element.png' at modules/custom-component.spec.ts:29 27 | }); 28 | > 29 | const IMAGE_FILE = fs.readFileSync("playwright/sample-files/element.png"); | ^ 30 | 31 | test.describe("Custom Component API", () => { 32 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:29:23
Run Tests [Chrome] 4/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at messages/messages.spec.ts:16 14 | import { test, expect } from "../../element-web-test"; 15 | > 16 | const MEDIA_FILE = readFileSync("playwright/sample-files/riot.png"); | ^ 17 | 18 | async function waitForMessageSentStatus(msgTile: Locator): Promise<void> { 19 | await expect(msgTile.getByRole("status")).toHaveAccessibleName("Your message was sent"); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/messages/messages.spec.ts:16:20
Run Tests [Chrome] 6/6
No files were found with the provided path: blob-report. No artifacts will be uploaded.
Run Tests [Chrome] 6/6
Process completed with exit code 1.
Run Tests [Chrome] 6/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at widgets/stickers.spec.ts:22 20 | const ROOM_NAME_1 = "Sticker Test"; 21 | const ROOM_NAME_2 = "Sticker Test Two"; > 22 | const STICKER_IMAGE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 23 | 24 | function getStickerMessage(contentUri: string, mimetype: string): string { 25 | return JSON.stringify({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/widgets/stickers.spec.ts:22:26
Run Tests [Chrome] 6/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/timeline.spec.ts:26 24 | 25 | const ROOM_NAME = "Test room"; > 26 | const OLD_AVATAR = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 27 | const NEW_AVATAR = fs.readFileSync("playwright/sample-files/element.png"); 28 | const OLD_NAME = "Alan"; 29 | const NEW_NAME = "Alan (away)"; at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/timeline.spec.ts:26:23
Run Tests [Chrome] 6/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/media-preview-settings.spec.ts:13 11 | import { test, expect } from "../../element-web-test"; 12 | > 13 | const MEDIA_FILE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 14 | 15 | test.describe("Media preview settings", () => { 16 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/media-preview-settings.spec.ts:13:23
Run Tests [Chrome] 6/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/element.png' at modules/custom-component.spec.ts:29 27 | }); 28 | > 29 | const IMAGE_FILE = fs.readFileSync("playwright/sample-files/element.png"); | ^ 30 | 31 | test.describe("Custom Component API", () => { 32 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:29:23
Run Tests [Chrome] 6/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at messages/messages.spec.ts:16 14 | import { test, expect } from "../../element-web-test"; 15 | > 16 | const MEDIA_FILE = readFileSync("playwright/sample-files/riot.png"); | ^ 17 | 18 | async function waitForMessageSentStatus(msgTile: Locator): Promise<void> { 19 | await expect(msgTile.getByRole("status")).toHaveAccessibleName("Your message was sent"); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/messages/messages.spec.ts:16:20
Run Tests [Chrome] 3/6
No files were found with the provided path: blob-report. No artifacts will be uploaded.
Run Tests [Chrome] 3/6
Process completed with exit code 1.
Run Tests [Chrome] 3/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at widgets/stickers.spec.ts:22 20 | const ROOM_NAME_1 = "Sticker Test"; 21 | const ROOM_NAME_2 = "Sticker Test Two"; > 22 | const STICKER_IMAGE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 23 | 24 | function getStickerMessage(contentUri: string, mimetype: string): string { 25 | return JSON.stringify({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/widgets/stickers.spec.ts:22:26
Run Tests [Chrome] 3/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/timeline.spec.ts:26 24 | 25 | const ROOM_NAME = "Test room"; > 26 | const OLD_AVATAR = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 27 | const NEW_AVATAR = fs.readFileSync("playwright/sample-files/element.png"); 28 | const OLD_NAME = "Alan"; 29 | const NEW_NAME = "Alan (away)"; at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/timeline.spec.ts:26:23
Run Tests [Chrome] 3/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/media-preview-settings.spec.ts:13 11 | import { test, expect } from "../../element-web-test"; 12 | > 13 | const MEDIA_FILE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 14 | 15 | test.describe("Media preview settings", () => { 16 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/media-preview-settings.spec.ts:13:23
Run Tests [Chrome] 3/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/element.png' at modules/custom-component.spec.ts:29 27 | }); 28 | > 29 | const IMAGE_FILE = fs.readFileSync("playwright/sample-files/element.png"); | ^ 30 | 31 | test.describe("Custom Component API", () => { 32 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:29:23
Run Tests [Chrome] 3/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at messages/messages.spec.ts:16 14 | import { test, expect } from "../../element-web-test"; 15 | > 16 | const MEDIA_FILE = readFileSync("playwright/sample-files/riot.png"); | ^ 17 | 18 | async function waitForMessageSentStatus(msgTile: Locator): Promise<void> { 19 | await expect(msgTile.getByRole("status")).toHaveAccessibleName("Your message was sent"); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/messages/messages.spec.ts:16:20
Run Tests [Chrome] 1/6
No files were found with the provided path: blob-report. No artifacts will be uploaded.
Run Tests [Chrome] 1/6
Process completed with exit code 1.
Run Tests [Chrome] 1/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at widgets/stickers.spec.ts:22 20 | const ROOM_NAME_1 = "Sticker Test"; 21 | const ROOM_NAME_2 = "Sticker Test Two"; > 22 | const STICKER_IMAGE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 23 | 24 | function getStickerMessage(contentUri: string, mimetype: string): string { 25 | return JSON.stringify({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/widgets/stickers.spec.ts:22:26
Run Tests [Chrome] 1/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/timeline.spec.ts:26 24 | 25 | const ROOM_NAME = "Test room"; > 26 | const OLD_AVATAR = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 27 | const NEW_AVATAR = fs.readFileSync("playwright/sample-files/element.png"); 28 | const OLD_NAME = "Alan"; 29 | const NEW_NAME = "Alan (away)"; at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/timeline.spec.ts:26:23
Run Tests [Chrome] 1/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/media-preview-settings.spec.ts:13 11 | import { test, expect } from "../../element-web-test"; 12 | > 13 | const MEDIA_FILE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 14 | 15 | test.describe("Media preview settings", () => { 16 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/media-preview-settings.spec.ts:13:23
Run Tests [Chrome] 1/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/element.png' at modules/custom-component.spec.ts:29 27 | }); 28 | > 29 | const IMAGE_FILE = fs.readFileSync("playwright/sample-files/element.png"); | ^ 30 | 31 | test.describe("Custom Component API", () => { 32 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:29:23
Run Tests [Chrome] 1/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at messages/messages.spec.ts:16 14 | import { test, expect } from "../../element-web-test"; 15 | > 16 | const MEDIA_FILE = readFileSync("playwright/sample-files/riot.png"); | ^ 17 | 18 | async function waitForMessageSentStatus(msgTile: Locator): Promise<void> { 19 | await expect(msgTile.getByRole("status")).toHaveAccessibleName("Your message was sent"); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/messages/messages.spec.ts:16:20
Run Tests [Chrome] 5/6
No files were found with the provided path: blob-report. No artifacts will be uploaded.
Run Tests [Chrome] 5/6
Process completed with exit code 1.
Run Tests [Chrome] 5/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at widgets/stickers.spec.ts:22 20 | const ROOM_NAME_1 = "Sticker Test"; 21 | const ROOM_NAME_2 = "Sticker Test Two"; > 22 | const STICKER_IMAGE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 23 | 24 | function getStickerMessage(contentUri: string, mimetype: string): string { 25 | return JSON.stringify({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/widgets/stickers.spec.ts:22:26
Run Tests [Chrome] 5/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/timeline.spec.ts:26 24 | 25 | const ROOM_NAME = "Test room"; > 26 | const OLD_AVATAR = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 27 | const NEW_AVATAR = fs.readFileSync("playwright/sample-files/element.png"); 28 | const OLD_NAME = "Alan"; 29 | const NEW_NAME = "Alan (away)"; at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/timeline.spec.ts:26:23
Run Tests [Chrome] 5/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at timeline/media-preview-settings.spec.ts:13 11 | import { test, expect } from "../../element-web-test"; 12 | > 13 | const MEDIA_FILE = fs.readFileSync("playwright/sample-files/riot.png"); | ^ 14 | 15 | test.describe("Media preview settings", () => { 16 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/timeline/media-preview-settings.spec.ts:13:23
Run Tests [Chrome] 5/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/element.png' at modules/custom-component.spec.ts:29 27 | }); 28 | > 29 | const IMAGE_FILE = fs.readFileSync("playwright/sample-files/element.png"); | ^ 30 | 31 | test.describe("Custom Component API", () => { 32 | test.use({ at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/modules/custom-component.spec.ts:29:23
Run Tests [Chrome] 5/6
Error: ENOENT: no such file or directory, open 'playwright/sample-files/riot.png' at messages/messages.spec.ts:16 14 | import { test, expect } from "../../element-web-test"; 15 | > 16 | const MEDIA_FILE = readFileSync("playwright/sample-files/riot.png"); | ^ 17 | 18 | async function waitForMessageSentStatus(msgTile: Locator): Promise<void> { 19 | await expect(msgTile.getByRole("status")).toHaveAccessibleName("Your message was sent"); at /home/runner/work/element-web/element-web/apps/web/playwright/e2e/messages/messages.spec.ts:16:20
ED macOS / Test macOS Universal / Test macos
No files were found with the provided path: blob-report. No artifacts will be uploaded.
ED macOS / Test macOS Universal / Test macos
The process '/Users/runner/setup-pnpm/node_modules/.bin/pnpm' failed with exit code 1
ED Linux (amd64) (sqlcipher: system) / Test Linux amd64 SQLCipher system / Test linux-amd64-sqlcipher-system
No files were found with the provided path: blob-report. No artifacts will be uploaded.
ED Linux (amd64) (sqlcipher: system) / Test Linux amd64 SQLCipher system / Test linux-amd64-sqlcipher-system
The process '/usr/bin/xvfb-run' failed with exit code 1
ED Linux (arm64) (sqlcipher: static) / Build Linux arm64 SQLCipher static
The strategy configuration was canceled because "build_ed_linux.system_amd64" failed
ED Linux (arm64) (sqlcipher: system) / Test Linux arm64 SQLCipher system / Test linux-arm64-sqlcipher-system
The strategy configuration was canceled because "build_ed_linux.system_amd64" failed
ED Linux (arm64) (sqlcipher: system) / Test Linux arm64 SQLCipher system / Test linux-arm64-sqlcipher-system
No files were found with the provided path: blob-report. No artifacts will be uploaded.
ED Windows (x64) / Test Windows x64 / Test win-x64
No files were found with the provided path: blob-report. No artifacts will be uploaded.
ED Windows (x64) / Test Windows x64 / Test win-x64
The process 'C:\Users\runneradmin\setup-pnpm\node_modules\.bin\pnpm.CMD' failed with exit code 1
ED Linux (amd64) (sqlcipher: static) / Build Linux amd64 SQLCipher static
The strategy configuration was canceled because "build_ed_linux.system_amd64" failed
ED Windows (ia32) / Test Windows ia32 / Test win-ia32
The strategy configuration was canceled because "build_ed_windows.x64" failed
ED Windows (ia32) / Test Windows ia32 / Test win-ia32
No files were found with the provided path: blob-report. No artifacts will be uploaded.
ED Windows (ia32) / Test Windows ia32 / Test win-ia32
The operation was canceled.
ED Windows (arm64) / Test Windows arm64 / Test win-arm64
The strategy configuration was canceled because "build_ed_windows.x64" failed
ED Windows (arm64) / Test Windows arm64 / Test win-arm64
No files were found with the provided path: blob-report. No artifacts will be uploaded.
ED Windows (arm64) / Test Windows arm64 / Test win-arm64
The operation was canceled.
Build & Test
The strategy configuration was canceled because "build_ed_windows.x64" failed
Build & Test
The strategy configuration was canceled because "build_ed_windows.x64" failed
Build & Test
The strategy configuration was canceled because "build_ed_windows.x64" failed
Build & Test
The strategy configuration was canceled because "build_ed_windows.x64" failed
end-to-end-tests
No files were found with the provided path: playwright-report. No artifacts will be uploaded.
Build & Test
The strategy configuration was canceled because "build_ed_linux.system_amd64" failed
end-to-end-tests
Process completed with exit code 1.
Build & Test
The strategy configuration was canceled because "build_ed_linux.system_amd64" failed
Build & Test
The strategy configuration was canceled because "build_ed_linux.system_amd64" failed
Build & Test
The strategy configuration was canceled because "build_ed_linux.system_amd64" failed
ED macOS / Build macOS Universal
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/
ED Linux (arm64) (sqlcipher: system) / 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/
ED 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: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/
ED macOS / Test macOS Universal / Test macos
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/
ED 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: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/
ED Linux (amd64) (sqlcipher: system) / 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. 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/
ED 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: nbucic/variable-mapper@0673f6891a0619ba7c002ecfed0f9f4f39017b6f. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/
ED Linux (amd64) (sqlcipher: system) / Test Linux amd64 SQLCipher system / Test 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: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/
ED Linux (arm64) (sqlcipher: static) / 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, tj-actions/changed-files@823fcebdb31bb35fdf2229d9f769b400309430d0. 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/
ED Windows (x64) / Test Windows x64 / Test win-x64
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/
ED Linux (amd64) (sqlcipher: static) / 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, tj-actions/changed-files@823fcebdb31bb35fdf2229d9f769b400309430d0. Actions will be forced to run with Node.js 24 by default starting June 2nd, 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/

Artifacts

Produced during runtime
Name Size Digest
desktop-prepare Expired
41 MB
sha256:8617bf6d19f3d243a2ce27e0593758734dad5ca73f9479cffc835bead2eb99e4
linux-amd64-sqlcipher-system Expired
284 MB
sha256:55dd4e380f788dbe8684b55c7fbf7180d91e581ffcfc932fde1a12416b234826
linux-arm64-sqlcipher-system Expired
279 MB
sha256:931f156b0baf06542a7c4ba123f31a4785711d651c0373d32e2cd5f13bc51187
macos Expired
509 MB
sha256:965628450c318eb8bcc09640e411f5eeebe67d92f08b2178b12305ede802784f
webapp Expired
41.3 MB
sha256:27b2783486741b8f1c1e0b4ff226d2bd2f455069a6d99cba364e438be09005a8
win-arm64 Expired
698 MB
sha256:3f2b2275a838322bac3630693035457017b4c3c96e0b78b898196f2fd2402268
win-ia32 Expired
635 MB
sha256:6667de101fbec3f60bab7e763c6b4c26a9448c4c7579be72c9209d36c2a0217e
win-x64 Expired
710 MB
sha256:4255b33aeff4e58a10414ebee693482c9c0d0aec93b4e5ac82810a4e7acf483c