From 87d79e8cafe95142789c1613e0875ba4356b72ba Mon Sep 17 00:00:00 2001 From: Ondrej Hajek Date: Thu, 13 Feb 2025 07:31:08 +0100 Subject: [PATCH 1/2] chore(ci): Update trezor user env image to latest --- docker/docker-compose.connect-popup-ci.yml | 2 +- docker/docker-compose.connect-popup-test.yml | 2 +- docker/docker-compose.connect-test.yml | 2 +- docker/docker-compose.connect-webextension-test.yml | 2 +- docker/docker-compose.suite-ci-pw.yml | 2 +- docker/docker-compose.suite-ci.yml | 2 +- docker/docker-compose.suite-desktop-ci.yml | 2 +- docker/docker-compose.suite-dev.yml | 2 +- docker/docker-compose.suite-native-ci.yml | 2 +- docker/docker-compose.suite-test.yml | 2 +- docker/docker-compose.transport-test-ci.yml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docker/docker-compose.connect-popup-ci.yml b/docker/docker-compose.connect-popup-ci.yml index 57cafe1e676..76eb52f87be 100644 --- a/docker/docker-compose.connect-popup-ci.yml +++ b/docker/docker-compose.connect-popup-ci.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp diff --git a/docker/docker-compose.connect-popup-test.yml b/docker/docker-compose.connect-popup-test.yml index f7cd150a5af..e8634dd99f9 100644 --- a/docker/docker-compose.connect-popup-test.yml +++ b/docker/docker-compose.connect-popup-test.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - DISPLAY=$DISPLAY - QT_X11_NO_MITSHM=1 diff --git a/docker/docker-compose.connect-test.yml b/docker/docker-compose.connect-test.yml index 46c61a43d29..780dc1567d2 100644 --- a/docker/docker-compose.connect-test.yml +++ b/docker/docker-compose.connect-test.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp diff --git a/docker/docker-compose.connect-webextension-test.yml b/docker/docker-compose.connect-webextension-test.yml index a0bbbc11483..813c30c6d43 100644 --- a/docker/docker-compose.connect-webextension-test.yml +++ b/docker/docker-compose.connect-webextension-test.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp diff --git a/docker/docker-compose.suite-ci-pw.yml b/docker/docker-compose.suite-ci-pw.yml index 3257214d222..a8a4435c715 100644 --- a/docker/docker-compose.suite-ci-pw.yml +++ b/docker/docker-compose.suite-ci-pw.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp diff --git a/docker/docker-compose.suite-ci.yml b/docker/docker-compose.suite-ci.yml index 64ac9c6bf6c..2a2877cf929 100644 --- a/docker/docker-compose.suite-ci.yml +++ b/docker/docker-compose.suite-ci.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp diff --git a/docker/docker-compose.suite-desktop-ci.yml b/docker/docker-compose.suite-desktop-ci.yml index 3257214d222..a8a4435c715 100644 --- a/docker/docker-compose.suite-desktop-ci.yml +++ b/docker/docker-compose.suite-desktop-ci.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp diff --git a/docker/docker-compose.suite-dev.yml b/docker/docker-compose.suite-dev.yml index ab1b0d8e006..71ab2358409 100644 --- a/docker/docker-compose.suite-dev.yml +++ b/docker/docker-compose.suite-dev.yml @@ -4,7 +4,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - DISPLAY=$DISPLAY - QT_X11_NO_MITSHM=1 diff --git a/docker/docker-compose.suite-native-ci.yml b/docker/docker-compose.suite-native-ci.yml index f66a5e83cca..a162276579f 100644 --- a/docker/docker-compose.suite-native-ci.yml +++ b/docker/docker-compose.suite-native-ci.yml @@ -3,7 +3,7 @@ services: trezor-user-env-unix: network_mode: "host" container_name: trezor-user-env.unix - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp diff --git a/docker/docker-compose.suite-test.yml b/docker/docker-compose.suite-test.yml index 36dfdfc31e0..4117ee83390 100644 --- a/docker/docker-compose.suite-test.yml +++ b/docker/docker-compose.suite-test.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - DISPLAY=$DISPLAY - QT_X11_NO_MITSHM=1 diff --git a/docker/docker-compose.transport-test-ci.yml b/docker/docker-compose.transport-test-ci.yml index 0ca6135bb8e..242afaad376 100644 --- a/docker/docker-compose.transport-test-ci.yml +++ b/docker/docker-compose.transport-test-ci.yml @@ -1,7 +1,7 @@ version: "3.9" services: trezor-user-env-unix: - image: ghcr.io/trezor/trezor-user-env:b23cde1860e03c8bdaebbbc8fcbcd2cc9d6375d3 + image: ghcr.io/trezor/trezor-user-env:6339d48f1df4f007fe5caee659e4bca3997d480a environment: - SDL_VIDEODRIVER=dummy - XDG_RUNTIME_DIR=/var/tmp From 4299334a01f6fa8ede13798dbe4df31951ae7487 Mon Sep 17 00:00:00 2001 From: Ondrej Hajek Date: Thu, 13 Feb 2025 08:48:03 +0100 Subject: [PATCH 2/2] fix(e2e): Fixed TrezorUserEnvLink default FW version --- packages/trezor-user-env-link/src/api.ts | 35 ++++++++++++------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/packages/trezor-user-env-link/src/api.ts b/packages/trezor-user-env-link/src/api.ts index cf56a74d2eb..25671b28f42 100644 --- a/packages/trezor-user-env-link/src/api.ts +++ b/packages/trezor-user-env-link/src/api.ts @@ -1,6 +1,6 @@ /* eslint-disable no-console */ -import semverRSort from 'semver/functions/rsort'; +import rcompare from 'semver/functions/rcompare'; import semverValid from 'semver/functions/valid'; import { TypedEmitter } from '@trezor/utils'; @@ -95,7 +95,6 @@ export const DEFAULT_BRIDGE_VERSION = '2.0.33'; export class TrezorUserEnvLinkClass extends TypedEmitter { private client: WebsocketClient; public firmwares?: Firmwares; - private defaultFirmware?: string; public defaultModel: Model = 'T2T1'; public currentEmulatorSetup?: Partial = {}; @@ -110,11 +109,6 @@ export class TrezorUserEnvLinkClass extends TypedEmitter this.client.on('firmwares', (firmwares: Firmwares) => { this.firmwares = firmwares; - // select the highest version from the list of available firmwares. - // this is the version that is likely to be the newest production. - this.defaultFirmware = semverRSort( - this.firmwares[this.defaultModel].filter(fw => semverValid(fw)), - )[0]; }); this.client.on('disconnected', () => this.emit('disconnected')); @@ -198,23 +192,28 @@ export class TrezorUserEnvLinkClass extends TypedEmitter return null; } - async startEmu(arg?: StartEmu) { - const params = { + async startEmu(arg: StartEmu = {}) { + const { model = this.defaultModel, ...rest } = arg; + const defaultFirmware = this.firmwares?.[model] + ?.filter(version => semverValid(version)) + ?.sort(rcompare)?.[0] ?? '2-main'; + + await this.client.send({ type: 'emulator-start', - model: this.defaultModel, - version: this.defaultFirmware || '2-main', - ...arg, - }; - - await this.client.send(params); - - if (params.wipe) { + model, + version: defaultFirmware, + ...rest, + }); + + if (rest.wipe) { this.currentEmulatorSettings = {}; this.currentEmulatorSetup = {}; } - + return null; } + + async startEmuFromUrl({ url, model, wipe }: StartEmuFromUrl) { await this.client.send({ type: 'emulator-start-from-url',