Skip to content

Commit ecd628d

Browse files
committed
make apk build parallel
may reduce build time
1 parent 3352d92 commit ecd628d

1 file changed

Lines changed: 52 additions & 35 deletions

File tree

.github/workflows/dengine.yml

Lines changed: 52 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)