@@ -14,27 +14,31 @@ jobs:
1414 fail-fast : true
1515 matrix :
1616 include :
17- - os : windows-2022
17+ - name : " windows_x86_64"
18+ os : windows-2022
1819 shell : msys2
19- name : " x86_64_windows "
20- - os : ubuntu-22.04
20+ - name : " linux_x86_64 "
21+ os : ubuntu-22.04
2122 shell : bash
22- name : " x86_64_linux"
23+ - name : " android"
24+ os : ubuntu-22.04
25+ shell : bash
26+
2327 runs-on : ${{ matrix.os }}
2428 defaults :
2529 run :
2630 shell : ${{ matrix.shell}} {0}
2731
2832 steps :
2933 - name : linux setup and dependencies
30- if : matrix.name == 'x86_64_linux '
34+ if : matrix.name == 'linux_x86_64 '
3135 run : |
3236 sudo apt update
3337 sudo apt -y install libgtk-3-dev python3-dev pkgconf libgl-dev libx11-dev libegl-dev libbullet-dev
3438
3539 - name : msys2 setup
3640 uses : msys2/setup-msys2@v2
37- if : matrix.name == 'x86_64_windows '
41+ if : matrix.name == 'windows_x86_64 '
3842 with :
3943 msystem : UCRT64
4044 update : true
@@ -50,15 +54,46 @@ jobs:
5054 - name : submodules
5155 run : |
5256 git submodule update --init --depth 1 deps/cglm deps/stb deps/mingw-ldd deps/ntldd
57+
58+ - name : Set Up JDK
59+ if : matrix.name == 'android'
60+ uses : actions/setup-java@v3
61+ with :
62+ distribution : temurin
63+ java-version : ' 17'
64+ cache : ' gradle'
65+
66+ - name : Setup Android SDK
67+ if : matrix.name == 'android'
68+ uses : android-actions/setup-android@v3
69+
70+ - name : Android Sdk packages
71+ if : matrix.name == 'android'
72+ run : |
73+ sdkmanager "cmake;3.30.3" "ndk;23.1.7779620"
5374
75+
5476 - name : dengine-rc
5577 run : |
5678 cmake -S main/dengine-rc -B build/dengine-rc
5779 cmake --build build/dengine-rc
5880
59- - name : ${{ matrix.name }} config, build and install
81+ - name : android config
82+ if : matrix.name == 'android'
83+ run : |
84+ if [ -z "$ANDROID_HOME" ]; then
85+ echo "requre $ANDROID_HOME to be set" >&2
86+ exit 1
87+ fi
88+ toolchain="$ANDROID_HOME/ndk/23.1.7779620/build/cmake/android.toolchain.cmake"
89+ cmake -S . -B build/${{ matrix.name }} -DBUILD_SHARED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE="$toolchain" -DANDROID_PLATFORM=21 -DDENGINE_SCRIPTING_PYTHON=OFF
90+
91+ - name : ${{ matrix.name }} config
6092 run : |
6193 cmake -S . -B build/${{ matrix.name }} -DBUILD_SHARED_LIBS=ON
94+
95+ - name : ${{ matrix.name }} build and install
96+ run : |
6297 cmake --build build/${{ matrix.name }} -j$(nproc)
6398 cmake --install build/${{ matrix.name }} --prefix out-${{ matrix.name }}
6499
@@ -67,43 +102,25 @@ jobs:
67102 zip -r ${{ matrix.name }}.zip out-${{ matrix.name }}/
68103
69104 - name : assets zip
70- if : matrix.name == 'x86_64_linux '
105+ if : matrix.name == 'linux_x86_64 '
71106 run : |
72107 zip -r assets.zip ./assets
73108
74109 - name : assets package
75- if : matrix.name == 'x86_64_linux '
110+ if : matrix.name == 'linux_x86_64 '
76111 uses : actions/upload-artifact@v4
77112 with :
78113 name : assets package
79114 path : assets.zip
80-
81115
82116 - name : ${{ matrix.name }} build
83117 uses : actions/upload-artifact@v4
84118 with :
85119 name : ${{ matrix.name }}_build
86120 path : ${{ matrix.name }}.zip
87121
88- - name : Set Up JDK
89- if : matrix.name == 'x86_64_linux'
90- uses : actions/setup-java@v3
91- with :
92- distribution : temurin
93- java-version : ' 17'
94- cache : ' gradle'
95-
96- - name : Setup Android SDK
97- if : matrix.name == 'x86_64_linux'
98- uses : android-actions/setup-android@v3
99-
100- - name : Android Sdk packages
101- if : matrix.name == 'x86_64_linux'
102- run : |
103- sdkmanager "cmake;3.30.3"
104-
105122 - name : test apk
106- if : matrix.name == 'x86_64_linux '
123+ if : matrix.name == 'android '
107124 env :
108125 ANDROID_KEYSTORE : ${{ secrets.ANDROID_KEYSTORE }}
109126 ANDROID_KEYSTORE_ALIAS : ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
@@ -123,47 +140,47 @@ jobs:
123140 ./gradlew --no-daemon build
124141
125142 - name : zip all apks
126- if : matrix.name == 'x86_64_linux '
143+ if : matrix.name == 'android '
127144 run : |
128145 zip apks.zip $(find ./tests/src/testdengine-android/apk/app/build/outputs -iname '*.apk')
129146
130147 - name : all_android apks
131- if : matrix.name == 'x86_64_linux '
148+ if : matrix.name == 'android '
132149 uses : actions/upload-artifact@v4
133150 with :
134151 name : all_android_apks
135152 path : apks.zip
136153
137154 - name : android build universal
138- if : matrix.name == 'x86_64_linux '
155+ if : matrix.name == 'android '
139156 uses : actions/upload-artifact@v4
140157 with :
141158 name : android_universal_debug
142159 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-universal-debug.apk
143160
144161 - name : android build armebi-v7a
145- if : matrix.name == 'x86_64_linux '
162+ if : matrix.name == 'android '
146163 uses : actions/upload-artifact@v4
147164 with :
148165 name : android_armebi-v7a_debug
149166 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-armeabi-v7a-debug.apk
150167
151168 - name : android build arm64-v8a
152- if : matrix.name == 'x86_64_linux '
169+ if : matrix.name == 'android '
153170 uses : actions/upload-artifact@v4
154171 with :
155172 name : android_arm64-v8a_debug
156173 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-arm64-v8a-debug.apk
157174
158175 - name : android build x86
159- if : matrix.name == 'x86_64_linux '
176+ if : matrix.name == 'android '
160177 uses : actions/upload-artifact@v4
161178 with :
162179 name : android_x86_debug
163180 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-x86-debug.apk
164181
165182 - name : android build x86_64
166- if : matrix.name == 'x86_64_linux '
183+ if : matrix.name == 'android '
167184 uses : actions/upload-artifact@v4
168185 with :
169186 name : android_x86_64_debug
0 commit comments