diff --git a/.github/workflows/assigner.yml b/.github/workflows/assigner.yml index bcd09dc4957a..299cbc614ccc 100644 --- a/.github/workflows/assigner.yml +++ b/.github/workflows/assigner.yml @@ -9,6 +9,6 @@ permissions: jobs: assign-author: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: toshimaru/auto-author-assign@v1.4.0 diff --git a/.github/workflows/build-desktop-external-reusable.yml b/.github/workflows/build-desktop-external-reusable.yml index 67bc572856df..b3f309401999 100644 --- a/.github/workflows/build-desktop-external-reusable.yml +++ b/.github/workflows/build-desktop-external-reusable.yml @@ -19,13 +19,18 @@ jobs: build-desktop-app: strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - name: "Build Ledger Live Desktop" - runs-on: ${{ matrix.os }} + config: + [ + { name: "linux", os: "ubuntu-22.04", image: "linux-x86_64.AppImage" }, + { name: "win", os: "windows-2022", dotnet: true, image: "win-x64.exe" }, + { name: "mac", os: "macos-14", image: "mac.dmg" }, + ] + runs-on: ${{ matrix.config.os }} + name: "Build LLD (external) | ${{ matrix.config.name }}" outputs: - linux: ${{ steps.save-result.outputs.ubuntu-latest }} - windows: ${{ steps.save-result.outputs.windows-latest }} - mac: ${{ steps.save-result.outputs.macos-latest }} + linux: ${{ steps.save-result.outputs.linux }} + windows: ${{ steps.save-result.outputs.win }} + mac: ${{ steps.save-result.outputs.mac }} env: NODE_OPTIONS: "--max-old-space-size=7168" steps: @@ -35,11 +40,11 @@ jobs: with: result-encoding: string script: | - if ("${{ matrix.os }}" === "ubuntu-latest") { + if ("${{ matrix.config.name }}" === "linux") { return "linux" - } else if ("${{ matrix.os }}" === "macos-latest") { + } else if ("${{ matrix.config.name }}" === "mac") { return "mac" - } else if ("${{ matrix.os }}" === "windows-latest") { + } else if ("${{ matrix.config.name }}" === "win") { return "win" } - uses: actions/checkout@v4 @@ -52,7 +57,7 @@ jobs: uses: LedgerHQ/ledger-live/tools/actions/composites/setup-git-user@develop - uses: actions/setup-python@v4 with: - python-version: "3.x" + python-version: "3.13.0" - uses: ruby/setup-ruby@v1 with: ruby-version: 3.3.0 @@ -60,7 +65,7 @@ jobs: - name: Setup the toolchain uses: LedgerHQ/ledger-live/tools/actions/composites/setup-toolchain@develop with: - upgrade_npm: ${{ matrix.os == 'windows-latest' }} + upgrade_npm: ${{ matrix.config.name == 'win' }} - name: Build desktop uses: LedgerHQ/ledger-live/tools/actions/composites/setup-build-desktop@develop id: build-desktop @@ -74,29 +79,16 @@ jobs: shell: bash if: ${{ !cancelled() }} run: | - echo "${{matrix.os}}=${{steps.build-app.outcome}}" >> $GITHUB_OUTPUT - - name: Upload linux app - if: matrix.os == 'ubuntu-latest' + echo "${{matrix.config.name}}=${{steps.build-app.outcome}}" >> $GITHUB_OUTPUT + - name: Upload app uses: actions/upload-artifact@v4 with: - name: ${{ steps.build-desktop.outputs.version }}-linux-x86_64.AppImage - path: ${{ github.workspace }}/apps/ledger-live-desktop/dist/${{ steps.build-desktop.outputs.name }}-${{ steps.build-desktop.outputs.version }}-linux-x86_64.AppImage - - name: Upload macOS app - if: matrix.os == 'macos-latest' - uses: actions/upload-artifact@v4 - with: - name: ${{ steps.build-desktop.outputs.version }}-mac.dmg - path: ${{ github.workspace }}/apps/ledger-live-desktop/dist/${{ steps.build-desktop.outputs.name }}-${{ steps.build-desktop.outputs.version }}-mac.dmg - - name: Upload windows - if: matrix.os == 'windows-latest' - uses: actions/upload-artifact@v4 - with: - name: ${{ steps.build-desktop.outputs.version }}-win-x64.exe - path: ${{ github.workspace }}/apps/ledger-live-desktop/dist/${{ steps.build-desktop.outputs.name }}-${{ steps.build-desktop.outputs.version }}-win-x64.exe + name: ${{ steps.build-desktop.outputs.version }}-${{ matrix.config.image }} + path: ${{ github.workspace }}/apps/ledger-live-desktop/dist/${{ steps.build-desktop.outputs.name }}-${{ steps.build-desktop.outputs.version }}-${{ matrix.config.image }} report: needs: build-desktop-app - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: ${{ !cancelled() && github.event_name == 'workflow_dispatch' }} steps: - uses: actions/github-script@v7 @@ -116,23 +108,23 @@ jobs: }); const findJobUrl = os => - jobs.find(job => job.name == `Build Ledger Live Desktop (${os})`)?.html_url; + jobs.find(job => job.name == `Build LLD (external) | ${os}`)?.html_url; const keys = { mac: { symbol: "🍏", name: "macOS", - jobUrl: findJobUrl("macos-latest") + jobUrl: findJobUrl("mac") }, windows: { symbol: "🪟", name: "Windows", - jobUrl: findJobUrl("windows-latest") + jobUrl: findJobUrl("win") }, linux: { symbol: "🐧", name: "Linux", - jobUrl: findJobUrl("ubuntu-latest") + jobUrl: findJobUrl("linux") }, }; diff --git a/.github/workflows/build-desktop-reusable.yml b/.github/workflows/build-desktop-reusable.yml index 4b0fab500e49..3029901f8505 100644 --- a/.github/workflows/build-desktop-reusable.yml +++ b/.github/workflows/build-desktop-reusable.yml @@ -37,8 +37,8 @@ jobs: config: [ { name: "linux", os: "ledger-live-4xlarge", image: "linux-x86_64.AppImage" }, - { name: "win", os: "windows-latest", dotnet: true, image: "win-x64.exe" }, - { name: "mac", os: "macos-latest", image: "mac.dmg" }, + { name: "win", os: "windows-2022", dotnet: true, image: "win-x64.exe" }, + { name: "mac", os: "macos-14", image: "mac.dmg" }, ] name: "Build LLD | ${{ matrix.config.name }}" runs-on: ${{ matrix.config.os }} @@ -114,7 +114,7 @@ jobs: report: needs: build-desktop-app - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: ${{ !cancelled() && (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call' || github.event_name == 'pull_request')}} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/build-mobile-external-reusable.yml b/.github/workflows/build-mobile-external-reusable.yml index fd729a3cae3e..944a8486575c 100644 --- a/.github/workflows/build-mobile-external-reusable.yml +++ b/.github/workflows/build-mobile-external-reusable.yml @@ -82,7 +82,7 @@ jobs: path: ${{ github.workspace }}/apps/ledger-live-mobile/android/app/build/outputs/apk/stagingRelease build-mobile-app-ios: - runs-on: macos-latest + runs-on: macos-14 name: "Build Ledger Live Mobile (Mac OS X)" env: NODE_OPTIONS: "--max-old-space-size=7168" diff --git a/.github/workflows/build-mobile-reusable.yml b/.github/workflows/build-mobile-reusable.yml index 347fc148042d..58e48ada58a4 100644 --- a/.github/workflows/build-mobile-reusable.yml +++ b/.github/workflows/build-mobile-reusable.yml @@ -126,7 +126,7 @@ jobs: path: ${{ github.workspace }}/apps/ledger-live-mobile/mobile.metafile.json report: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: [build-mobile-app-android, build-mobile-app-ios] if: ${{ !cancelled() && (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call' || github.event_name == 'pull_request' ) }} steps: diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index 660c529bf886..314c86f11a06 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -24,7 +24,7 @@ permissions: jobs: lint-commits: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v2 @@ -51,7 +51,7 @@ jobs: name: commitlint path: ${{ github.workspace }}/commitlint.out report: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: [lint-commits] if: ${{ !cancelled() }} steps: diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index e4f5022ca60a..0921ffd6553e 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -9,7 +9,7 @@ jobs: permissions: contents: read pull-requests: write - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: generate token id: generate-token diff --git a/.github/workflows/notify-prerelease-translations.yml b/.github/workflows/notify-prerelease-translations.yml index f20a5bb2a092..32eb6a0a9dac 100644 --- a/.github/workflows/notify-prerelease-translations.yml +++ b/.github/workflows/notify-prerelease-translations.yml @@ -19,7 +19,7 @@ on: jobs: release-translation-check: name: release branch translation check - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: ${{ github.ref_name != 'release' }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/test-desktop-reusable.yml b/.github/workflows/test-desktop-reusable.yml index ce7d37ced1b4..ed11840cfe59 100644 --- a/.github/workflows/test-desktop-reusable.yml +++ b/.github/workflows/test-desktop-reusable.yml @@ -34,8 +34,8 @@ jobs: env: NODE_OPTIONS: "--max-old-space-size=7168" FORCE_COLOR: 3 - CI_OS: ubuntu-latest - runs-on: ubuntu-latest + CI_OS: ubuntu-22.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -76,8 +76,8 @@ jobs: env: NODE_OPTIONS: "--max-old-space-size=7168" FORCE_COLOR: 3 - CI_OS: ubuntu-latest - runs-on: ubuntu-latest + CI_OS: ubuntu-22.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -107,7 +107,7 @@ jobs: NODE_OPTIONS: "--max-old-space-size=7168" INSTRUMENT_BUILD: true FORCE_COLOR: 3 - CI_OS: "ubuntu-latest" + CI_OS: "ubuntu-22.04" PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 LC_ALL: en_US.UTF-8 # DEBUG: "pw:browser*" @@ -171,7 +171,7 @@ jobs: path: apps/ledger-live-desktop/allure-results report: needs: [codechecks, unit-tests, e2e-tests-linux] - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: ${{ !cancelled() }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/test-libs-reusable.yml b/.github/workflows/test-libs-reusable.yml index bb3909d6561e..915d3e1774a8 100644 --- a/.github/workflows/test-libs-reusable.yml +++ b/.github/workflows/test-libs-reusable.yml @@ -148,7 +148,7 @@ jobs: report: needs: [test-docs, test-libraries, codecheck-libraries] if: ${{ !cancelled() && github.event_name == 'workflow_dispatch' }} - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/download-artifact@v4 with: diff --git a/.github/workflows/test-mobile-e2e-reusable.yml b/.github/workflows/test-mobile-e2e-reusable.yml index 61e17f2960f6..047d7ea76c2e 100644 --- a/.github/workflows/test-mobile-e2e-reusable.yml +++ b/.github/workflows/test-mobile-e2e-reusable.yml @@ -364,7 +364,7 @@ jobs: report: needs: [detox-tests-android, detox-tests-ios] - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: ${{ !cancelled() && (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call' || github.event_name == 'pull_request') }} steps: - uses: actions/checkout@v4 @@ -452,7 +452,7 @@ jobs: path: ${{ github.workspace }}/summary-detox.json report-on-slack: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: [detox-tests-android, detox-tests-ios] if: ${{ failure() && github.event_name == 'push' }} steps: diff --git a/tools/actions/composites/setup-test-desktop/action.yml b/tools/actions/composites/setup-test-desktop/action.yml index 6b696dd8fd5e..fbc869813918 100644 --- a/tools/actions/composites/setup-test-desktop/action.yml +++ b/tools/actions/composites/setup-test-desktop/action.yml @@ -35,7 +35,7 @@ runs: - name: Install node-gyp globally if: ${{ inputs.install_node_gyp }} run: | - pnpm add -g node-gyp + pnpm add -g node-gyp@3.8.0 shell: bash - name: Install dependencies env: diff --git a/tools/actions/turbo-affected/build/main.js b/tools/actions/turbo-affected/build/main.js index f6e8b9be3c73..db1eb12aac88 100644 --- a/tools/actions/turbo-affected/build/main.js +++ b/tools/actions/turbo-affected/build/main.js @@ -18925,7 +18925,7 @@ var package_default = { "doc:ljs": 'pnpm turbo doc --no-daemon --filter="./libs/ledgerjs/**"', "watch:ljs": 'pnpm turbo watch --no-daemon --filter="./libs/ledgerjs/**"', "watch:common": "pnpm turbo watch --no-daemon --filter=./libs/ledger-live-common", - "dev:cli": "pnpm turbo watch --no-daemon --filter=@ledgerhq/live-cli", + "dev:cli": "pnpm turbo watch --filter=@ledgerhq/live-cli", "dev:lld": "pnpm turbo start --no-daemon --filter=ledger-live-desktop", "dev:lld:debug": "DEV_TOOLS=1 LEDGER_INTERNAL_ARGS=--inspect ELECTRON_ARGS=--remote-debugging-port=8315 pnpm turbo start --no-daemon --filter=ledger-live-desktop", "dev:llm": "pnpm turbo start --no-daemon --filter=live-mobile", @@ -19073,14 +19073,15 @@ var package_default = { "@ledgerhq/devices": "workspace:*", tslib: "2.6.2", "@hashgraph/sdk>@grpc/grpc-js": "1.6.7", - "@hashgraph/sdk>@hashgraph/cryptography": "1.1.2" + "@hashgraph/sdk>@hashgraph/cryptography": "1.1.2", + "@ethersproject/providers>ws": "7.5.10" }, patchedDependencies: { "react-native-fast-crypto@2.2.0": "patches/react-native-fast-crypto@2.2.0.patch", "rn-fetch-blob@0.12.0": "patches/rn-fetch-blob@0.12.0.patch", "react-native-image-crop-tools@1.6.4": "patches/react-native-image-crop-tools@1.6.4.patch", "asyncstorage-down@4.2.0": "patches/asyncstorage-down@4.2.0.patch", - "detox@20.23.0": "patches/detox@20.23.0.patch", + "detox@20.26.2": "patches/detox@20.26.2.patch", "usb@2.9.0": "patches/usb@2.9.0.patch", "react-native-video@5.2.1": "patches/react-native-video@5.2.1.patch", "@hashgraph/sdk@2.14.2": "patches/@hashgraph__sdk@2.14.2.patch", @@ -19111,6 +19112,7 @@ async function main() { const pkg = core.getInput("package") || ""; const command = core.getInput("command"); const turboVersion = package_default.devDependencies.turbo; + const packageManager = package_default.packageManager; try { const turboOutput = (0, import_child_process.execSync)( `npx turbo@${turboVersion} run ${command} --filter=...[${ref}] --dry=json`, @@ -19119,7 +19121,7 @@ async function main() { maxBuffer: 2048 * 1024 } ); - const pnpmOutput = (0, import_child_process.execSync)(`npx pnpm list -r --depth=0 --json`, { + const pnpmOutput = (0, import_child_process.execSync)(`npx ${packageManager} list -r --depth=0 --json`, { encoding: "utf-8", maxBuffer: 2048 * 1024 }); diff --git a/tools/actions/turbo-affected/src/main.ts b/tools/actions/turbo-affected/src/main.ts index 7a8c34146fbd..cc16f4b8de81 100644 --- a/tools/actions/turbo-affected/src/main.ts +++ b/tools/actions/turbo-affected/src/main.ts @@ -7,6 +7,7 @@ async function main() { const pkg = core.getInput("package") || ""; const command = core.getInput("command"); const turboVersion = packageJson.devDependencies.turbo; + const packageManager = packageJson.packageManager; // pnpm@ try { const turboOutput = execSync( @@ -16,7 +17,7 @@ async function main() { maxBuffer: 2048 * 1024, }, ); - const pnpmOutput = execSync(`npx pnpm list -r --depth=0 --json`, { + const pnpmOutput = execSync(`npx ${packageManager} list -r --depth=0 --json`, { encoding: "utf-8", maxBuffer: 2048 * 1024, });