chore(ci): enforce Node 24.14.0 and unify mobile CI setup (#7469)

* chore(ci): enforce Node 24.14.0 and unify mobile CI setup

Upgrade Node from 22.11.0 to 24.14.0 to fix ESM require() compatibility
with Storybook 10. Refactor mobile workflows to use the shared yarn
composite action for consistent Node setup and better caching.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>

* chore(ci): pin build-and-maestro-test to base profile

Extend base so the E2E build profile inherits the same Node 24.14.0
and sdk-55 image instead of drifting on the "latest" alias.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>

---------

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
This commit is contained in:
Daniel Dimitrov
2026-03-18 17:33:02 +01:00
committed by GitHub
co-authored by Hanzo Dev
parent 981873a134
commit f8d6b954d3
8 changed files with 31 additions and 70 deletions
+13 -2
View File
@@ -1,12 +1,23 @@
name: 'Yarn'
description: 'Install the dependencies'
description: 'Set up Node.js and install dependencies'
inputs:
after-install:
description: 'Run web after-install step to generate contract types'
required: false
default: 'true'
runs:
using: 'composite'
steps:
- uses: ./.github/actions/corepack
- uses: actions/setup-node@v6
with:
node-version: '24.14.0'
cache: 'yarn'
- name: Restore Yarn Cache & Types
id: restore-yarn-types
uses: ./.github/actions/cache-deps
@@ -24,7 +35,7 @@ runs:
run: yarn install --immutable
- name: Yarn after-install to generate contracts types
if: steps.restore-yarn-types.outputs.cache-hit-yarn != 'true'
if: steps.restore-yarn-types.outputs.cache-hit-yarn != 'true' && inputs.after-install == 'true'
shell: bash
run: yarn workspace @safe-global/web after-install
+2 -11
View File
@@ -27,18 +27,9 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6
- name: Enable Corepack
run: corepack enable
# Set up Node.js
- uses: actions/setup-node@v6
- uses: ./.github/actions/yarn
with:
node-version: '22.11.0'
cache: 'yarn'
# Install dependencies
- name: Install dependencies
run: yarn install --immutable
after-install: 'false'
- name: Setup Expo and EAS
uses: expo/expo-github-action@v8
+2 -11
View File
@@ -21,18 +21,9 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6
- name: Enable Corepack
run: corepack enable
# Set up Node.js
- uses: actions/setup-node@v6
- uses: ./.github/actions/yarn
with:
node-version: '22.11.0' # jod
cache: 'yarn'
# Install dependencies
- name: Install dependencies
run: yarn install --immutable
after-install: 'false'
- name: Setup Expo and EAS
uses: expo/expo-github-action@v8
+3 -13
View File
@@ -24,24 +24,14 @@ jobs:
runs-on: ubuntu-latest
steps:
# Checkout the code
- name: Checkout code
uses: actions/checkout@v6
- name: Enable Corepack
run: corepack enable
# Set up Node.js
- uses: actions/setup-node@v6
- uses: ./.github/actions/yarn
with:
node-version: '22.11.0' # jod
cache: 'yarn'
after-install: 'false'
# Install dependencies
- name: Install dependencies
run: yarn install --immutable
# Run tests with coverage
# Run lint
- name: Run lint
run: |
yarn workspace @safe-global/mobile run lint
+2 -12
View File
@@ -26,22 +26,12 @@ jobs:
runs-on: ubuntu-latest
steps:
# Checkout the code
- name: Checkout code
uses: actions/checkout@v6
- name: Enable Corepack
run: corepack enable
# Set up Node.js
- uses: actions/setup-node@v6
- uses: ./.github/actions/yarn
with:
node-version: '22.11.0' # jod
cache: 'yarn'
# Install dependencies
- name: Install dependencies
run: yarn install --immutable
after-install: 'false'
# Run prettier check
- name: Run Prettier check
+2 -12
View File
@@ -23,22 +23,12 @@ jobs:
runs-on: ubuntu-latest
steps:
# Checkout the code
- name: Checkout code
uses: actions/checkout@v6
- name: Enable Corepack
run: corepack enable
# Set up Node.js
- uses: actions/setup-node@v6
- uses: ./.github/actions/yarn
with:
node-version: '22.11.0' # jod
cache: 'yarn'
# Install dependencies
- name: Install dependencies
run: yarn install --immutable
after-install: 'false'
# Run tests with coverage
- name: Run Jest tests with coverage
+1 -1
View File
@@ -1 +1 @@
v22.11.0
v24.14.0
+6 -8
View File
@@ -5,12 +5,12 @@
},
"build": {
"base": {
"node": "22.11.0",
"node": "24.14.0",
"android": {
"image": "sdk-52"
"image": "sdk-55"
},
"ios": {
"image": "sdk-52"
"image": "sdk-55"
}
},
"development": {
@@ -21,7 +21,7 @@
"APP_VARIANT": "development"
},
"android": {
"image": "sdk-52"
"image": "sdk-55"
}
},
"preview-ios-simulator": {
@@ -60,6 +60,7 @@
}
},
"build-and-maestro-test": {
"extends": "base",
"withoutCredentials": true,
"environment": "development",
"env": {
@@ -68,13 +69,10 @@
},
"config": "build-and-maestro-test.yml",
"android": {
"buildType": "apk",
"image": "latest"
"buildType": "apk"
},
"ios": {
"simulator": true,
"image": "latest",
"resourceClass": "large"
}
}