1414 - ' tools/**'
1515
1616env :
17- BUILD_TYPE : Release
17+ BUILD_TYPE : MinSizeRel
1818 NDK_VER : 21.3.6528147
1919 NDK_ARCH : x86_64
2020 NDK_API : 29
@@ -26,19 +26,25 @@ jobs:
2626 fail-fast : false
2727 matrix :
2828 include :
29- - os : macos-latest
29+ - {os: macos-15, version: 16 }
30+ - {os: macos-14, version: "15.4" }
31+
3032 - os : windows-latest
33+
3134 - {os: ubuntu-22.04, compiler: gcc, version: 11 }
3235 - {os: ubuntu-22.04, compiler: gcc, version: 12 }
3336 - {os: ubuntu-22.04, compiler: gcc, version: 13 }
3437 - {os: ubuntu-24.04, compiler: gcc, version: 14 }
35-
38+ # - {os: ubuntu-24.04, compiler: gcc, version: 15 }
39+
3640 - {os: ubuntu-22.04, compiler: clang, version: 13 }
3741 - {os: ubuntu-22.04, compiler: clang, version: 14 }
3842 - {os: ubuntu-22.04, compiler: clang, version: 15 }
3943 - {os: ubuntu-22.04, compiler: clang, version: 16 }
40- - {os: ubuntu-24.04, compiler: clang, version: 17 }
41- - {os: ubuntu-24.04, compiler: clang, version: 18 }
44+ - {os: ubuntu-latest, compiler: clang, version: 17 }
45+ - {os: ubuntu-latest, compiler: clang, version: 18 }
46+ - {os: ubuntu-latest, compiler: clang, version: 19 }
47+ - {os: ubuntu-latest, compiler: clang, version: 20 }
4248
4349 steps :
4450 - name : Checkout
@@ -47,23 +53,30 @@ jobs:
4753 - name : System Setup
4854 shell : bash
4955 run : |
50- if [[ '${{ matrix.os }}' == ' ubuntu-latest' ]]; then
56+ if [[ '${{ matrix.os }}' == ubuntu-* ]]; then
5157 if [[ '${{ matrix.compiler }}' == 'clang' ]]; then
5258 wget https://apt.llvm.org/llvm.sh
5359 chmod u+x llvm.sh
54- sudo ./llvm.sh ${{ matrix.version }}
60+ sudo ./llvm.sh ${{ matrix.version }}
5561 sudo apt-get install -y clang-tools-${{ matrix.version }} libc++-${{ matrix.version }}-dev libc++abi-${{ matrix.version }}-dev
5662 echo "CC=clang-${{ matrix.version }}" >> $GITHUB_ENV
5763 echo "CXX=clang++-${{ matrix.version }}" >> $GITHUB_ENV
5864 echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV
5965 fi
6066
6167 if [[ '${{ matrix.compiler }}' == 'gcc' ]]; then
68+ sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
6269 sudo apt-get update
6370 sudo apt-get install -y gcc-${{ matrix.version }} g++-${{ matrix.version }}
6471 echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV
6572 echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV
6673 fi
74+
75+ fi
76+ if [[ '${{ matrix.os }}' == macos-* ]]; then
77+ brew install icu4c
78+ echo "DEVELOPER_DIR=/Applications/Xcode_${{ matrix.version }}.app" >> $GITHUB_ENV
79+ echo "ICU_ROOT=$(brew --cellar icu4c)/$(brew info --json icu4c | jq -r '.[0].installed[0].version')" >> $GITHUB_ENV
6780 fi
6881
6982 - name : Configure
7588 shell : bash
7689 run : cmake --build out --config $BUILD_TYPE --target run-test
7790
91+ container :
92+ runs-on : ubuntu-latest
93+ container : ${{ matrix.container }}
94+ strategy :
95+ fail-fast : false
96+ matrix :
97+ container : [gcc:15.1]
98+
99+ steps :
100+ - name : Checkout
101+ uses : actions/checkout@v4
102+
103+ - name : Install pre-requisites
104+ run : |
105+ apt-get update
106+ apt-get install -y ninja-build cmake
107+ apt-get install -y python3-dev
108+
109+ - name : Configure
110+ shell : bash
111+ run : |
112+ cmake -S . -B out -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
113+
114+ - name : Build and Test
115+ shell : bash
116+ run : cmake --build out --config ${{env.BUILD_TYPE}} --target run-test
117+
78118 android :
79119 runs-on : ubuntu-latest
80120
@@ -129,24 +169,63 @@ jobs:
129169
130170 emscripten :
131171 runs-on : ubuntu-latest
172+ container : emscripten/emsdk:3.1.70
132173
133174 steps :
134175 - name : Checkout
135176 uses : actions/checkout@v4
136177
137- - name : Set Up Emscripten
138- uses : mymindstorm/setup-emsdk@v14
139- with :
140- version : 3.1.26
141- actions-cache-folder : ' emsdk-cache'
178+ - name : Install pre-requisites
179+ run : |
180+ apt-get update
181+ apt-get install -y ninja-build
182+ apt-get install -y python3-dev
183+
184+ export CMAKE_VERSION=3.27.1
185+ wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh \
186+ -q -O /tmp/cmake-install.sh \
187+ && chmod u+x /tmp/cmake-install.sh \
188+ && /tmp/cmake-install.sh --skip-license --prefix=/usr \
189+ rm -f /tmp/cmake-install.sh
142190
143191 - name : Configure
144192 shell : bash
145- run : cmake -S . -B out -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE
193+ run : cmake -S . -B out -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_BUILD_TYPE=${{env. BUILD_TYPE}}
146194
147195
148196 - name : Build and Test
149197 shell : bash
150- run : cmake --build out --config $BUILD_TYPE --target run-test
198+ run : cmake --build out --config ${{env. BUILD_TYPE}} --target run-test
151199
200+ pythons :
201+ runs-on : ubuntu-latest
202+ strategy :
203+ fail-fast : false
204+ matrix :
205+ python-version : [
206+ " 3.8" , "3.9", "3.10", "3.11", "3.12", "3.13", "3.13t",
207+ " pypy-3.9" , "pypy-3.10", "pypy-3.11"
208+ ]
209+ steps :
210+ - name : Checkout
211+ uses : actions/checkout@v4
212+
213+ - name : Set up Python
214+ uses : actions/setup-python@v5
215+ id : setup-python
216+ with :
217+ python-version : ${{matrix.python-version}}
152218
219+ - name : Configure
220+ shell : bash
221+ run : |
222+ cmake -S . -B out -DCMAKE_BUILD_TYPE=$BUILD_TYPE
223+
224+ - name : Build and Test
225+ shell : bash
226+ run : |
227+ cmake --build out --config $BUILD_TYPE --target test-17python test-20python
228+ echo Running test-17python
229+ out/test/test-17python
230+ echo Running test-20python
231+ out/test/test-20python
0 commit comments