@@ -108,6 +108,68 @@ runs:
108108 platform : ' ios'
109109 environment : ${{ inputs.environment }}
110110
111+ # # Android Setup (early for fail-fast) ##
112+
113+ # KVM permissions setup - commented out for self-hosted runner
114+ # - name: Enable KVM group perms (Ubuntu only)
115+ # if: ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
116+ # run: |
117+ # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
118+ # sudo udevadm control --reload-rules
119+ # sudo udevadm trigger --name-match=kvm
120+ # shell: bash
121+
122+ # # Android Emulator Setup (SDK/NDK pre-installed by self-hosted runner)
123+
124+ - name : Install required emulator dependencies
125+ if : ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
126+ run : |
127+ sudo apt-get update
128+ sudo apt-get install -y \
129+ libpulse0 \
130+ libglu1-mesa \
131+ libnss3 \
132+ libxss1
133+
134+ echo "✅ Linux dependencies installed successfully"
135+ shell : bash
136+
137+ - name : Install Android emulator and system images
138+ if : ${{ inputs.platform == 'android' }}
139+ run : |
140+ echo "Installing emulator and system images..."
141+
142+ # Clean up inconsistent NDK symlinks to avoid warnings
143+ echo "Cleaning up NDK symlinks..."
144+ rm -f /opt/android-sdk/ndk/26 /opt/android-sdk/ndk/27 /opt/android-sdk/ndk/28 2>/dev/null || true
145+
146+ "/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager" --install \
147+ "emulator" \
148+ "system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
149+
150+ echo "✅ Android emulator components installed successfully"
151+ shell : bash
152+
153+ # # Launch AVD
154+
155+ - name : Set ANDROID_AVD_HOME for downstream steps
156+ if : ${{ inputs.platform == 'android'}}
157+ shell : bash
158+ run : |
159+ echo "ANDROID_AVD_HOME=$HOME/.android/avd" >> "$GITHUB_ENV"
160+ mkdir -p "$HOME/.android/avd"
161+
162+ - name : Create Android Virtual Device (AVD)
163+ if : ${{ inputs.platform == 'android'}}
164+ run : |
165+ IMAGE="system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
166+ echo "Creating AVD with image: $IMAGE"
167+ echo "no" | "/opt/android-sdk/cmdline-tools/latest/bin/avdmanager" create avd \
168+ --name "${{ inputs.android-avd-name }}" \
169+ --package "$IMAGE" \
170+ --device "${{ inputs.android-device }}"
171+ shell : bash
172+
111173 # # Node.js & JavaScript Dependencies Setup ##
112174
113175 - name : Setup Node.js
@@ -231,60 +293,3 @@ runs:
231293 if : ${{ inputs.platform == 'ios' }}
232294 run : xcrun simctl list devices
233295 shell : bash
234-
235- # # Android Setup ##
236-
237- # KVM permissions setup - commented out for self-hosted runner
238- # - name: Enable KVM group perms (Ubuntu only)
239- # if: ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
240- # run: |
241- # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
242- # sudo udevadm control --reload-rules
243- # sudo udevadm trigger --name-match=kvm
244- # shell: bash
245-
246- # # Android Emulator Setup (SDK/NDK pre-installed by self-hosted runner)
247-
248- - name : Install required emulator dependencies
249- if : ${{ inputs.platform == 'android' && runner.os == 'Linux' }}
250- run : |
251- sudo apt-get update
252- sudo apt-get install -y \
253- libpulse0 \
254- libglu1-mesa \
255- libnss3 \
256- libxss1
257-
258- echo "✅ Linux dependencies installed successfully"
259- shell : bash
260-
261- - name : Install Android emulator and system images
262- if : ${{ inputs.platform == 'android' }}
263- run : |
264- echo "Installing emulator and system images..."
265- "/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager" --install \
266- "emulator" \
267- "system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
268-
269- echo "✅ Android emulator components installed successfully"
270- shell : bash
271-
272- # # Launch AVD
273-
274- - name : Set ANDROID_AVD_HOME for downstream steps
275- if : ${{ inputs.platform == 'android'}}
276- shell : bash
277- run : |
278- echo "ANDROID_AVD_HOME=$HOME/.android/avd" >> "$GITHUB_ENV"
279- mkdir -p "$HOME/.android/avd"
280-
281- - name : Create Android Virtual Device (AVD)
282- if : ${{ inputs.platform == 'android'}}
283- run : |
284- IMAGE="system-images;android-${{ inputs.android-api-level }};google_apis;${{ inputs.android-abi }}"
285- echo "Creating AVD with image: $IMAGE"
286- echo "no" | "/opt/android-sdk/cmdline-tools/latest/bin/avdmanager" create avd \
287- --name "${{ inputs.android-avd-name }}" \
288- --package "$IMAGE" \
289- --device "${{ inputs.android-device }}"
290- shell : bash
0 commit comments