Skip to content

Commit 20d9e25

Browse files
committed
update
1 parent 38ca803 commit 20d9e25

File tree

2 files changed

+534
-0
lines changed

2 files changed

+534
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# .github/actions/setup-android-ndk/action.yml
2+
name: 'Setup Android NDK'
3+
description: 'Installs and configures a specific version of the Android NDK'
4+
inputs:
5+
ndk-version:
6+
description: 'The version of the Android NDK to install (e.g., 27.2.12479018)'
7+
required: true
8+
default: '28.0.13004108'
9+
android-sdk-root:
10+
description: 'The root directory of the Android SDK'
11+
required: true
12+
default: '/usr/local/lib/android/sdk'
13+
14+
runs:
15+
using: "composite" # Use a composite action for multiple shell commands
16+
steps:
17+
- name: Install coreutils and ninja
18+
shell: bash
19+
run: sudo apt-get update -y && sudo apt-get install -y coreutils ninja-build
20+
21+
- name: Install Android NDK
22+
shell: bash
23+
run: |
24+
set -e
25+
"${{ inputs.android-sdk-root }}/cmdline-tools/latest/bin/sdkmanager" --install "ndk;${{ inputs.ndk-version }}"
26+
27+
NDK_PATH="${{ inputs.android-sdk-root }}/ndk/${{ inputs.ndk-version }}"
28+
if [[ ! -d "${NDK_PATH}" ]]; then
29+
echo "NDK directory is not in expected location: ${NDK_PATH}"
30+
exit 1
31+
fi
32+
33+
# Use standard environment variable setting in bash and add to GITHUB_ENV
34+
echo "ANDROID_NDK_HOME=${NDK_PATH}" >> $GITHUB_ENV
35+
echo "ANDROID_NDK_ROOT=${NDK_PATH}" >> $GITHUB_ENV
36+
echo "ANDROID_NDK_HOME: ${NDK_PATH}"
37+
echo "ANDROID_NDK_ROOT: ${NDK_PATH}"
38+
39+
- name: Check if emulator are installed and add to PATH
40+
shell: bash
41+
run: |
42+
if [[ ":$PATH:" == *":${ANDROID_SDK_ROOT}/emulator:"* ]]; then
43+
echo "${ANDROID_SDK_ROOT}/emulator is in PATH"
44+
else
45+
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "emulator"
46+
echo "${ANDROID_SDK_ROOT}/emulator" >> $GITHUB_PATH
47+
fi
48+
49+
- name: Check if platform tools are installed and add to PATH
50+
shell: bash
51+
run: |
52+
if [[ ":$PATH:" == *":${ANDROID_SDK_ROOT}/platform-tools:"* ]]; then
53+
echo "${ANDROID_SDK_ROOT}/platform-tools is in PATH"
54+
else
55+
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "platform-tools"
56+
echo "${ANDROID_SDK_ROOT}/platform-tools" >> $GITHUB_PATH
57+
fi
58+
ls -R "${ANDROID_SDK_ROOT}/platform-tools"
59+
60+
- name: Create Android Emulator
61+
shell: bash
62+
env:
63+
ANDROID_AVD_HOME: ${{ runner.temp }}/android-avd
64+
run: |
65+
python3 tools/python/run_android_emulator.py \
66+
--android-sdk-root "${ANDROID_SDK_ROOT}" \
67+
--create-avd --system-image "system-images;android-31;default;x86_64"
68+
69+
- name: List Android AVDs
70+
shell: bash
71+
env:
72+
ANDROID_AVD_HOME: ${{ runner.temp }}/android-avd
73+
run: |
74+
"${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/avdmanager" list avd
75+
76+
- name: Check emulator.pid does not exist
77+
shell: bash
78+
run: |
79+
if test -f ./emulator.pid; then
80+
echo "Emulator PID file was not expected to exist but does and has pid: `cat ./emulator.pid`"
81+
exit 1
82+
fi
83+
84+
- name: Start Android Emulator
85+
shell: bash
86+
env:
87+
ANDROID_AVD_HOME: ${{ runner.temp }}/android-avd
88+
run: |
89+
set -e -x
90+
python3 tools/python/run_android_emulator.py \
91+
--android-sdk-root "${ANDROID_SDK_ROOT}" \
92+
--start --emulator-extra-args="-partition-size 2047" \
93+
--emulator-pid-file ./emulator.pid
94+
echo "Emulator PID: `cat ./emulator.pid`"
95+
96+
- name: View Android ENVs
97+
shell: bash
98+
run: env | grep ANDROID

0 commit comments

Comments
 (0)