Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 38 additions & 34 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,39 +16,43 @@ jobs:
fail-fast: false
matrix:
confs:
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x86, mode: debug, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x86, mode: releasedbg, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x64, mode: debug, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x64, mode: releasedbg, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: arm64, mode: debug, test: false, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: arm64, mode: releasedbg, test: false, }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: debug, test: true, msystem: mingw32 }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: releasedbg, test: true, msystem: mingw32 }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: debug, test: true, msystem: mingw64 }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: releasedbg, test: true, msystem: mingw64 }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --asan=y }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --lsan=y }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --tsan=y }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: releasedbg, test: true, }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: debug, test: true, }
- { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: releasedbg, test: true, }
- { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: debug, test: true, }
- { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: releasedbg, test: true, }
- { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: debug, test: false, }
- { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: releasedbg, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: debug, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: releasedbg, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: debug, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: releasedbg, test: false, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x86, mode: debug, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x86, mode: releasedbg, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x64, mode: debug, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: x64, mode: releasedbg, test: true, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: arm64, mode: debug, test: false, }
- { name: Windows, runner: windows-latest, shell: pwsh, plat: windows, arch: arm64, mode: releasedbg, test: false, }
- { name: Windows (Clang), runner: windows-latest, shell: pwsh, plat: windows, arch: x86, mode: debug, test: true, config: --toolchain=clang, cache_key: -clang }
- { name: Windows (Clang), runner: windows-latest, shell: pwsh, plat: windows, arch: x86, mode: releasedbg, test: true, config: --toolchain=clang, cache_key: -clang }
- { name: Windows (Clang), runner: windows-latest, shell: pwsh, plat: windows, arch: x64, mode: debug, test: true, config: --toolchain=clang, cache_key: -clang }
- { name: Windows (Clang), runner: windows-latest, shell: pwsh, plat: windows, arch: x64, mode: releasedbg, test: true, config: --toolchain=clang, cache_key: -clang }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: debug, test: true, msystem: mingw32 }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: i686, mode: releasedbg, test: true, msystem: mingw32 }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: debug, test: true, msystem: mingw64 }
- { name: MinGW, runner: windows-latest, shell: 'msys2 {0}', plat: mingw, arch: x86_64, mode: releasedbg, test: true, msystem: mingw64 }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --asan=y }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --lsan=y }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: debug, test: true, config: --tsan=y }
- { name: Linux, runner: ubuntu-latest, shell: bash, plat: linux, arch: x86_64, mode: releasedbg, test: true, }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 25c, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, test: false, ndk_ver: 25c, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: debug, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: armeabi-v7a, mode: releasedbg, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: debug, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: Android NDK 26b, runner: ubuntu-latest, shell: bash, plat: android, arch: arm64-v8a, mode: releasedbg, test: false, ndk_ver: 26b, ndk_sdkver: 28 }
- { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: debug, test: true, }
- { name: macOS x86_64, runner: macos-latest, shell: bash, plat: macosx, arch: x86_64, mode: releasedbg, test: true, }
- { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: debug, test: true, }
- { name: macOS ARM64, runner: macos-14, shell: bash, plat: macosx, arch: arm64, mode: releasedbg, test: true, }
- { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: debug, test: false, }
- { name: iOS, runner: macos-latest, shell: bash, plat: iphoneos, arch: arm64, mode: releasedbg, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: debug, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm32, mode: releasedbg, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: debug, test: false, }
- { name: Emscripten, runner: ubuntu-latest, shell: bash, plat: wasm, arch: wasm64, mode: releasedbg, test: false, }
cxxver: [cxx17, cxx20, cxxlatest]

defaults:
Expand Down Expand Up @@ -122,7 +126,7 @@ jobs:
uses: actions/cache/restore@v4
with:
path: ${{ env.XMAKE_GLOBALDIR }}/.xmake/packages
key: ${{ matrix.confs.plat }}-${{ matrix.confs.arch }}-${{ matrix.confs.mode }}-${{ steps.dep_hash.outputs.hash }}-W${{ steps.cache_key.outputs.key }}
key: ${{ matrix.confs.plat }}-${{ matrix.confs.arch }}-${{ matrix.confs.mode }}-${{ steps.dep_hash.outputs.hash }}${{ matrix.confs.cache_key }}-W${{ steps.cache_key.outputs.key }}

# Setup compilation mode and install project dependencies
- name: Configure xmake and install dependencies
Expand Down
Loading