Skip to content

Commit 93e8eff

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

1 file changed

Lines changed: 53 additions & 35 deletions

File tree

.github/workflows/dengine.yml

Lines changed: 53 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,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

Comments
 (0)