@@ -32,18 +32,6 @@ inputs:
3232 description : Xcode version to select (e.g., 16.2)
3333 required : false
3434 default : ' 16.2'
35- jdk-version :
36- description : JDK version to use (only for Android)
37- required : false
38- default : ' 17'
39- jdk-distribution :
40- description : JDK distribution to use (only for Android)
41- required : false
42- default : ' temurin'
43- ndk-version :
44- description : NDK version to use (only for Android)
45- required : false
46- default : ' 26.1.10909125'
4735 foundry-version :
4836 description : Foundry version to install
4937 required : false
8977 with :
9078 node-version : ${{ inputs.node-version }}
9179
80+ # # Android Setup - Minimal (Runner handles SDK/NDK) ##
81+
82+ - name : Configure Android Signing Certificates
83+ if : ${{ inputs.platform == 'android' && inputs.configure-keystores == 'true' }}
84+ uses : MetaMask/github-tools/.github/actions/configure-keystore@e2e-env-actions
85+ with :
86+ aws-role-to-assume : ${{ inputs.keystore-role-to-assume }}
87+ aws-region : ' us-east-2'
88+ platform : ' android'
89+ environment : ${{ inputs.environment }}
90+
91+ - name : Setup Android environment variables
92+ if : ${{ inputs.platform == 'android' }}
93+ run : |
94+ echo "Adding emulator to PATH if needed..."
95+ echo "PATH=${PATH}:${ANDROID_SDK_ROOT}/emulator" >> "$GITHUB_ENV"
96+ shell : bash
97+
98+ - name : Fix Android SDK permissions and NDK inconsistencies
99+ if : ${{ inputs.platform == 'android' }}
100+ run : |
101+ echo "Fixing permissions on Android SDK directory..."
102+ sudo chown -R $USER:$USER ${ANDROID_SDK_ROOT}
103+ sudo chmod -R 755 ${ANDROID_SDK_ROOT}
104+
105+ echo "Resolving NDK directory inconsistencies..."
106+ cd ${ANDROID_SDK_ROOT}/ndk
107+ for major in 26 27 28; do
108+ if [ -L "$major" ]; then
109+ echo "Removing symlink for major version $major"
110+ rm -f "$major"
111+ fi
112+ # Optionally, rename full version dir back if needed, but assuming it's already in place
113+ done
114+ echo "✅ NDK directories fixed"
115+ shell : bash
116+
117+ # # Launch AVD
118+
119+ - name : Set ANDROID_AVD_HOME for downstream steps
120+ if : ${{ inputs.platform == 'android'}}
121+ shell : bash
122+ run : |
123+ echo "ANDROID_AVD_HOME=$HOME/.android/avd" >> "$GITHUB_ENV"
124+ mkdir -p "$HOME/.android/avd"
125+
126+ - name : Install system image for emulator
127+ if : ${{ inputs.platform == 'android'}}
128+ run : |
129+ echo "Installing system image for emulator..."
130+ IMAGE="system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
131+ echo "Installing: $IMAGE"
132+
133+ "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager" "$IMAGE"
134+
135+ echo "✅ System image installed"
136+ shell : bash
137+
138+ - name : Create Android Virtual Device (AVD)
139+ if : ${{ inputs.platform == 'android'}}
140+ run : |
141+ IMAGE="system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
142+ echo "Creating AVD with image: $IMAGE"
143+
144+ # List available system images for debugging
145+ echo "Available system images:"
146+ "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager" --list | grep "system-images" | head -10
147+
148+ echo "no" | "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/avdmanager" create avd \
149+ --name "${{ inputs.android-avd-name }}" \
150+ --package "$IMAGE" \
151+ --device "${{ inputs.android-device }}"
152+
153+ echo "✅ AVD created successfully"
154+ shell : bash
155+
92156 # # Yarn Setup & Cache Management
93157
94158 - name : Corepack
@@ -213,116 +277,3 @@ runs:
213277 if : ${{ inputs.platform == 'ios' }}
214278 run : xcrun simctl list devices
215279 shell : bash
216-
217- # # Android Setup ##
218-
219- # # JDK Setup
220- - name : Setup Java
221- if : ${{ inputs.platform == 'android' }}
222- uses : actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00
223- with :
224- java-version : ${{ inputs.jdk-version }}
225- distribution : ${{ inputs.jdk-distribution }}
226-
227- - name : Configure Android Signing Certificates
228- if : ${{ inputs.platform == 'android' && inputs.configure-keystores == 'true' }}
229- uses : MetaMask/github-tools/.github/actions/configure-keystore@e2e-env-actions
230- with :
231- aws-role-to-assume : ${{ inputs.keystore-role-to-assume }}
232- aws-region : ' us-east-2'
233- platform : ' android'
234- environment : ${{ inputs.environment }}
235-
236- # - name: Enable KVM group perms (Ubuntu only)
237- # if: ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
238- # run: |
239- # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
240- # sudo udevadm control --reload-rules
241- # sudo udevadm trigger --name-match=kvm
242- # shell: bash
243-
244- # # Android SDK Setup
245-
246- - name : Install required emulator dependencies
247- if : ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
248- run : |
249- sudo apt-get update
250- sudo apt-get install -y \
251- libpulse0 \
252- libglu1-mesa \
253- libnss3 \
254- libxss1
255-
256- echo "✅ Linux dependencies installed successfully"
257- shell : bash
258-
259- - name : Install Android SDK packages
260- if : ${{ inputs.platform == 'android' }}
261- run : |
262- echo "Accepting SDK licenses..."
263- printf 'y\n%.0s' {1..10} | "${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" --licenses
264-
265- echo "Installing Android SDK components..."
266- "${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" --install \
267- "platform-tools" \
268- "platforms;android-${{ inputs.android-api-level }}" \
269- "build-tools;34.0.0" \
270- "emulator" \
271- "system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}" \
272-
273- echo "Updating SDK packages..."
274- "${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" --update
275-
276- echo "✅ Android SDK packages installed successfully"
277- shell : bash
278-
279- # # NDK Setup
280-
281- - name : Debug Android SDK Paths
282- if : ${{ inputs.platform == 'android' }}
283- run : |
284- echo "ANDROID_HOME: $ANDROID_HOME"
285- echo "ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
286- shell : bash
287-
288- - name : Install Android NDK
289- if : ${{ inputs.platform == 'android' }}
290- run : |
291- "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;${{ inputs.ndk-version }}"
292- shell : bash
293-
294- - name : Add Android tools to PATH
295- if : ${{ inputs.platform == 'android' }}
296- run : |
297- echo "$ANDROID_HOME/platform-tools" >> "$GITHUB_PATH"
298- echo "$ANDROID_HOME/emulator" >> "$GITHUB_PATH"
299- echo "$ANDROID_HOME/cmdline-tools/latest/bin" >> "$GITHUB_PATH"
300- shell : bash
301-
302- - name : Add NDK related toolchains to PATH
303- if : ${{ inputs.platform == 'android' }}
304- run : |
305- NDK_TOOLCHAIN="$ANDROID_SDK_ROOT/ndk/${{ inputs.ndk-version }}/toolchains/llvm/prebuilt/linux-x86_64/bin"
306- echo "$NDK_TOOLCHAIN" >> "$GITHUB_PATH"
307- echo "$ANDROID_SDK_ROOT/ndk/${{ inputs.ndk-version }}" >> "$GITHUB_PATH"
308- shell : bash
309-
310- # # Launch AVD
311-
312- - name : Set ANDROID_AVD_HOME for downstream steps
313- if : ${{ inputs.platform == 'android'}}
314- shell : bash
315- run : |
316- echo "ANDROID_AVD_HOME=$HOME/.android/avd" >> "$GITHUB_ENV"
317- mkdir -p "$HOME/.android/avd"
318-
319- - name : Create Android Virtual Device (AVD)
320- if : ${{ inputs.platform == 'android'}}
321- run : |
322- IMAGE="system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
323- echo "Creating AVD with image: $IMAGE"
324- echo "no" | "${ANDROID_HOME}/cmdline-tools/latest/bin/avdmanager" create avd \
325- --name "${{ inputs.android-avd-name }}" \
326- --package "$IMAGE" \
327- --device "${{ inputs.android-device }}"
328- shell : bash
0 commit comments