Skip to content

Commit 1ab3c9b

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

1 file changed

Lines changed: 47 additions & 35 deletions

File tree

.github/workflows/dengine.yml

Lines changed: 47 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,41 @@ 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+
cmake -S . -B build/${{ matrix.name }} -DBUILD_SHARED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE="~/.android/sdk/ndk/23.1.7779620/build/cmake/android.toolchain.cmake" -DANDROID_PLATFORM=21
85+
86+
- name: ${{ matrix.name }} config
6087
run: |
6188
cmake -S . -B build/${{ matrix.name }} -DBUILD_SHARED_LIBS=ON
89+
90+
- name: ${{ matrix.name }} build and install
91+
run: |
6292
cmake --build build/${{ matrix.name }} -j$(nproc)
6393
cmake --install build/${{ matrix.name }} --prefix out-${{ matrix.name }}
6494
@@ -67,43 +97,25 @@ jobs:
6797
zip -r ${{ matrix.name }}.zip out-${{ matrix.name }}/
6898
6999
- name: assets zip
70-
if: matrix.name == 'x86_64_linux'
100+
if: matrix.name == 'linux_x86_64'
71101
run: |
72102
zip -r assets.zip ./assets
73103
74104
- name: assets package
75-
if: matrix.name == 'x86_64_linux'
105+
if: matrix.name == 'linux_x86_64'
76106
uses: actions/upload-artifact@v4
77107
with:
78108
name: assets package
79109
path: assets.zip
80-
81110

82111
- name: ${{ matrix.name }} build
83112
uses: actions/upload-artifact@v4
84113
with:
85114
name: ${{ matrix.name }}_build
86115
path: ${{ matrix.name }}.zip
87116

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-
105117
- name: test apk
106-
if: matrix.name == 'x86_64_linux'
118+
if: matrix.name == 'android'
107119
env:
108120
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
109121
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
@@ -123,47 +135,47 @@ jobs:
123135
./gradlew --no-daemon build
124136
125137
- name: zip all apks
126-
if: matrix.name == 'x86_64_linux'
138+
if: matrix.name == 'android'
127139
run: |
128140
zip apks.zip $(find ./tests/src/testdengine-android/apk/app/build/outputs -iname '*.apk')
129141
130142
- name: all_android apks
131-
if: matrix.name == 'x86_64_linux'
143+
if: matrix.name == 'android'
132144
uses: actions/upload-artifact@v4
133145
with:
134146
name: all_android_apks
135147
path: apks.zip
136148

137149
- name: android build universal
138-
if: matrix.name == 'x86_64_linux'
150+
if: matrix.name == 'android'
139151
uses: actions/upload-artifact@v4
140152
with:
141153
name: android_universal_debug
142154
path: ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-universal-debug.apk
143155

144156
- name: android build armebi-v7a
145-
if: matrix.name == 'x86_64_linux'
157+
if: matrix.name == 'android'
146158
uses: actions/upload-artifact@v4
147159
with:
148160
name: android_armebi-v7a_debug
149161
path: ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-armeabi-v7a-debug.apk
150162

151163
- name: android build arm64-v8a
152-
if: matrix.name == 'x86_64_linux'
164+
if: matrix.name == 'android'
153165
uses: actions/upload-artifact@v4
154166
with:
155167
name: android_arm64-v8a_debug
156168
path: ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-arm64-v8a-debug.apk
157169

158170
- name: android build x86
159-
if: matrix.name == 'x86_64_linux'
171+
if: matrix.name == 'android'
160172
uses: actions/upload-artifact@v4
161173
with:
162174
name: android_x86_debug
163175
path: ./tests/src/testdengine-android/apk/app/build/outputs/apk/debug/app-x86-debug.apk
164176

165177
- name: android build x86_64
166-
if: matrix.name == 'x86_64_linux'
178+
if: matrix.name == 'android'
167179
uses: actions/upload-artifact@v4
168180
with:
169181
name: android_x86_64_debug

0 commit comments

Comments
 (0)