@@ -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,47 @@ 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+
89+ whereis -b sdkmanager | awk '{print $2}'
90+ cmake -S . -B build/${{ matrix.name }} -DBUILD_SHARED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE=" $ANDROID_HOME/ndk/23.1.7779620/build/cmake/android.toolchain.cmake" -DANDROID_PLATFORM=21
91+
92+ - name : ${{ matrix.name }} config
6093 run : |
6194 cmake -S . -B build/${{ matrix.name }} -DBUILD_SHARED_LIBS=ON
95+
96+ - name : ${{ matrix.name }} build and install
97+ run : |
6298 cmake --build build/${{ matrix.name }} -j$(nproc)
6399 cmake --install build/${{ matrix.name }} --prefix out-${{ matrix.name }}
64100
@@ -67,43 +103,25 @@ jobs:
67103 zip -r ${{ matrix.name }}.zip out-${{ matrix.name }}/
68104
69105 - name : assets zip
70- if : matrix.name == 'x86_64_linux '
106+ if : matrix.name == 'linux_x86_64 '
71107 run : |
72108 zip -r assets.zip ./assets
73109
74110 - name : assets package
75- if : matrix.name == 'x86_64_linux '
111+ if : matrix.name == 'linux_x86_64 '
76112 uses : actions/upload-artifact@v4
77113 with :
78114 name : assets package
79115 path : assets.zip
80-
81116
82117 - name : ${{ matrix.name }} build
83118 uses : actions/upload-artifact@v4
84119 with :
85120 name : ${{ matrix.name }}_build
86121 path : ${{ matrix.name }}.zip
87122
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-
105123 - name : test apk
106- if : matrix.name == 'x86_64_linux '
124+ if : matrix.name == 'android '
107125 env :
108126 ANDROID_KEYSTORE : ${{ secrets.ANDROID_KEYSTORE }}
109127 ANDROID_KEYSTORE_ALIAS : ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
@@ -123,47 +141,47 @@ jobs:
123141 ./gradlew --no-daemon build
124142
125143 - name : zip all apks
126- if : matrix.name == 'x86_64_linux '
144+ if : matrix.name == 'android '
127145 run : |
128146 zip apks.zip $(find ./tests/src/testdengine-android/apk/app/build/outputs -iname '*.apk')
129147
130148 - name : all_android apks
131- if : matrix.name == 'x86_64_linux '
149+ if : matrix.name == 'android '
132150 uses : actions/upload-artifact@v4
133151 with :
134152 name : all_android_apks
135153 path : apks.zip
136154
137155 - name : android build universal
138- if : matrix.name == 'x86_64_linux '
156+ if : matrix.name == 'android '
139157 uses : actions/upload-artifact@v4
140158 with :
141159 name : android_universal_debug
142160 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-universal-debug.apk
143161
144162 - name : android build armebi-v7a
145- if : matrix.name == 'x86_64_linux '
163+ if : matrix.name == 'android '
146164 uses : actions/upload-artifact@v4
147165 with :
148166 name : android_armebi-v7a_debug
149167 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-armeabi-v7a-debug.apk
150168
151169 - name : android build arm64-v8a
152- if : matrix.name == 'x86_64_linux '
170+ if : matrix.name == 'android '
153171 uses : actions/upload-artifact@v4
154172 with :
155173 name : android_arm64-v8a_debug
156174 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-arm64-v8a-debug.apk
157175
158176 - name : android build x86
159- if : matrix.name == 'x86_64_linux '
177+ if : matrix.name == 'android '
160178 uses : actions/upload-artifact@v4
161179 with :
162180 name : android_x86_debug
163181 path : ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-x86-debug.apk
164182
165183 - name : android build x86_64
166- if : matrix.name == 'x86_64_linux '
184+ if : matrix.name == 'android '
167185 uses : actions/upload-artifact@v4
168186 with :
169187 name : android_x86_64_debug
0 commit comments