14
14
- ' tools/**'
15
15
16
16
env :
17
- BUILD_TYPE : Release
17
+ BUILD_TYPE : MinSizeRel
18
18
NDK_VER : 21.3.6528147
19
19
NDK_ARCH : x86_64
20
20
NDK_API : 29
@@ -26,19 +26,25 @@ jobs:
26
26
fail-fast : false
27
27
matrix :
28
28
include :
29
- - os : macos-latest
29
+ - {os: macos-15, version: 16 }
30
+ - {os: macos-14, version: "15.4" }
31
+
30
32
- os : windows-latest
33
+
31
34
- {os: ubuntu-22.04, compiler: gcc, version: 11 }
32
35
- {os: ubuntu-22.04, compiler: gcc, version: 12 }
33
36
- {os: ubuntu-22.04, compiler: gcc, version: 13 }
34
37
- {os: ubuntu-24.04, compiler: gcc, version: 14 }
35
-
38
+ # - {os: ubuntu-24.04, compiler: gcc, version: 15 }
39
+
36
40
- {os: ubuntu-22.04, compiler: clang, version: 13 }
37
41
- {os: ubuntu-22.04, compiler: clang, version: 14 }
38
42
- {os: ubuntu-22.04, compiler: clang, version: 15 }
39
43
- {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 }
42
48
43
49
steps :
44
50
- name : Checkout
@@ -47,23 +53,30 @@ jobs:
47
53
- name : System Setup
48
54
shell : bash
49
55
run : |
50
- if [[ '${{ matrix.os }}' == ' ubuntu-latest' ]]; then
56
+ if [[ '${{ matrix.os }}' == ubuntu-* ]]; then
51
57
if [[ '${{ matrix.compiler }}' == 'clang' ]]; then
52
58
wget https://apt.llvm.org/llvm.sh
53
59
chmod u+x llvm.sh
54
- sudo ./llvm.sh ${{ matrix.version }}
60
+ sudo ./llvm.sh ${{ matrix.version }}
55
61
sudo apt-get install -y clang-tools-${{ matrix.version }} libc++-${{ matrix.version }}-dev libc++abi-${{ matrix.version }}-dev
56
62
echo "CC=clang-${{ matrix.version }}" >> $GITHUB_ENV
57
63
echo "CXX=clang++-${{ matrix.version }}" >> $GITHUB_ENV
58
64
echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV
59
65
fi
60
66
61
67
if [[ '${{ matrix.compiler }}' == 'gcc' ]]; then
68
+ sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
62
69
sudo apt-get update
63
70
sudo apt-get install -y gcc-${{ matrix.version }} g++-${{ matrix.version }}
64
71
echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV
65
72
echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV
66
73
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
67
80
fi
68
81
69
82
- name : Configure
75
88
shell : bash
76
89
run : cmake --build out --config $BUILD_TYPE --target run-test
77
90
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
+
78
118
android :
79
119
runs-on : ubuntu-latest
80
120
@@ -129,24 +169,63 @@ jobs:
129
169
130
170
emscripten :
131
171
runs-on : ubuntu-latest
172
+ container : emscripten/emsdk:3.1.70
132
173
133
174
steps :
134
175
- name : Checkout
135
176
uses : actions/checkout@v4
136
177
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
142
190
143
191
- name : Configure
144
192
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}}
146
194
147
195
148
196
- name : Build and Test
149
197
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
151
199
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}}
152
218
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