@@ -19,39 +19,39 @@ jobs:
19
19
fail-fast : false
20
20
matrix :
21
21
confs :
22
- - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x86, mode: debug, test: true, }
23
- - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x86, mode: releasedbg, test: true, }
24
- - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x64, mode: debug, test: true, }
25
- - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x64, mode: releasedbg, test: true, }
26
- - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: arm64, mode: debug, test: false, }
27
- - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: arm64, mode: releasedbg, test: false, }
28
- - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: debug, test: true, msystem: mingw32 }
29
- - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: releasedbg, test: true, msystem: mingw32 }
30
- - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: debug, test: true, msystem: mingw64 }
31
- - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: releasedbg, test: true, msystem: mingw64 }
32
- - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, }
33
- - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --asan=y }
34
- - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --lsan=y }
35
- - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --tsan=y }
36
- - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: releasedbg, test: true, }
37
- - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
38
- - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
39
- - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
40
- - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
41
- - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
42
- - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
43
- - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
44
- - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
45
- - { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: debug, test: true, }
46
- - { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: releasedbg, test: true, }
47
- - { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: debug, test: true, }
48
- - { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: releasedbg, test: true, }
49
- - { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: debug, test: false, }
50
- - { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: releasedbg, test: false, }
51
- - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: debug, test: false, }
52
- - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: releasedbg, test: false, }
53
- - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: debug, test: false, }
54
- - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: releasedbg, test: false, }
22
+ - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x86, mode: debug, package: true, test: true, }
23
+ - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x86, mode: releasedbg, package: true, test: true, }
24
+ - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x64, mode: debug, package: true, test: true, }
25
+ - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: x64, mode: releasedbg, package: true, test: true, }
26
+ - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: arm64, mode: debug, package: true, test: false, }
27
+ - { name: Windows, runner: windows-latest, shell: bash, plat: windows, arch: arm64, mode: releasedbg, package: true, test: false, }
28
+ - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: debug, package: true, test: true, msystem: mingw32 }
29
+ - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: releasedbg, package: true, test: true, msystem: mingw32 }
30
+ - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: debug, package: true, test: true, msystem: mingw64 }
31
+ - { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: releasedbg, package: true, test: true, msystem: mingw64 }
32
+ - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, package: true, test: true, }
33
+ - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, package: false, test: true, config: --asan=y }
34
+ - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, package: false, test: true, config: --lsan=y }
35
+ - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, package: false, test: true, config: --tsan=y }
36
+ - { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: releasedbg, package: true, test: true, }
37
+ - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, package: false, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
38
+ - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, package: false, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
39
+ - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, package: false, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
40
+ - { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, package: false, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
41
+ - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, package: true, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
42
+ - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, package: true, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
43
+ - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, package: true, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
44
+ - { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, package: true, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
45
+ - { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: debug, package: true, test: true, }
46
+ - { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: releasedbg, package: true, test: true, }
47
+ - { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: debug, package: true, test: true, }
48
+ - { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: releasedbg, package: true, test: true, }
49
+ - { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: debug, package: true, test: false, }
50
+ - { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: releasedbg, package: true, test: false, }
51
+ - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: debug, package: false, test: false, }
52
+ - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: releasedbg, package: false, test: false, }
53
+ - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: debug, package: false, test: false, }
54
+ - { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: releasedbg, package: false, test: false, }
55
55
kind : [shared, static]
56
56
exclude :
57
57
- confs : { name: Emscripten }
@@ -143,14 +143,19 @@ jobs:
143
143
PLATFORM_CONF="$PLATFORM_CONF --examples=y --tests=y" >> $GITHUB_ENV
144
144
fi
145
145
# MinGW has some issues with unitybuild
146
- if [ "${{ matrix.confs.name }}" != "MinGW " ]; then
146
+ if [ "${{ matrix.confs.plat }}" != "mingw " ]; then
147
147
PLATFORM_CONF="$PLATFORM_CONF --unitybuild=y" >> $GITHUB_ENV
148
148
fi
149
149
# Android and Emscripten don't support filesystem watcher
150
150
if [ "${{ matrix.confs.plat }}" == "android" ] || [ "${{ matrix.confs.plat }}" == "wasm" ]; then
151
151
PLATFORM_CONF="$PLATFORM_CONF --fs_watcher=n" >> $GITHUB_ENV
152
152
fi
153
153
echo "ADDITIONAL_CONF=${{ env.ADDITIONAL_CONF }} $PLATFORM_CONF" >> $GITHUB_ENV
154
+ if [ "${{ matrix.confs.plat }}" == "windows" ]; then
155
+ echo "OUTPUT_FILE=${{ matrix.confs.plat }}_${{ matrix.confs.arch }}_${{ matrix.kind }}_${{ matrix.confs.mode }}.zip" >> $GITHUB_ENV
156
+ else
157
+ echo "OUTPUT_FILE=${{ matrix.confs.plat }}_${{ matrix.confs.arch }}_${{ matrix.kind }}_${{ matrix.confs.mode }}.tgz" >> $GITHUB_ENV
158
+ fi
154
159
155
160
# Setup compilation mode and install project dependencies
156
161
- name : Configure xmake and install dependencies
@@ -192,7 +197,7 @@ jobs:
192
197
# Nightly tags (for commits to main branch)
193
198
- name : Upload binaries to release (Main)
194
199
uses : svenstaro/upload-release-action@v2
195
- if : ${{ (github.ref == 'refs/heads/main') && github.event_name == 'push' }}
200
+ if : ${{ (github.ref == 'refs/heads/main') && github.event_name == 'push' && matrix.confs.package }}
196
201
with :
197
202
repo_token : ${{ secrets.GITHUB_TOKEN }}
198
203
file : ${{ env.OUTPUT_FILE }}
@@ -203,7 +208,7 @@ jobs:
203
208
# Release tags (for tags)
204
209
- name : Upload binaries to release (Tag)
205
210
uses : svenstaro/upload-release-action@v2
206
- if : ${{ startsWith(github.event.ref, 'refs/tags/') && matrix.mode == 'releasedbg' }}
211
+ if : ${{ startsWith(github.event.ref, 'refs/tags/') && matrix.confs. mode == 'releasedbg' && matrix.confs.package }}
207
212
with :
208
213
repo_token : ${{ secrets.GITHUB_TOKEN }}
209
214
file : ${{ env.OUTPUT_FILE }}
0 commit comments