|
22 | 22 | jobs: |
23 | 23 | build_universal_wheel: |
24 | 24 | name: Build Universal Wheel (macOS x86_64) |
25 | | - runs-on: macos-14-large |
| 25 | + runs-on: macos-15-intel |
| 26 | + timeout-minutes: 600 |
26 | 27 | steps: |
27 | 28 | - name: Setup pyenv |
28 | 29 | run: | |
29 | 30 | curl https://pyenv.run | bash |
30 | 31 | export PATH="$HOME/.pyenv/bin:$PATH" |
31 | 32 | eval "$(pyenv init -)" |
32 | 33 |
|
33 | | - pyenv install 3.8:latest |
34 | 34 | pyenv install 3.9:latest |
35 | 35 | pyenv install 3.10:latest |
36 | 36 | pyenv install 3.11:latest |
37 | 37 | pyenv install 3.12:latest |
38 | 38 | pyenv install 3.13:latest |
39 | | - pyenv global 3.8 3.9 3.10 3.11 3.12 3.13 |
| 39 | + pyenv global 3.9 3.10 3.11 3.12 3.13 |
40 | 40 |
|
41 | 41 | echo "Installed versions:" |
42 | 42 | pyenv versions |
|
48 | 48 | pyenv versions |
49 | 49 | echo "" |
50 | 50 | echo "Verifying all required Python versions are available:" |
51 | | - for version in 3.8 3.9 3.10 3.11 3.12 3.13; do |
| 51 | + for version in 3.9 3.10 3.11 3.12 3.13; do |
52 | 52 | if ! pyenv versions --bare | grep -q "^$version"; then |
53 | 53 | echo "ERROR: Python $version is not installed!" |
54 | 54 | exit 1 |
|
60 | 60 | run: | |
61 | 61 | export PATH="$HOME/.pyenv/bin:$PATH" |
62 | 62 | eval "$(pyenv init -)" |
63 | | - for version in 3.8 3.9 3.10 3.11 3.12 3.13; do |
| 63 | + for version in 3.9 3.10 3.11 3.12 3.13; do |
64 | 64 | echo "Installing dependencies for Python $version" |
65 | 65 | pyenv shell $version |
66 | 66 | python -m pip install --upgrade pip |
@@ -122,30 +122,39 @@ jobs: |
122 | 122 | - name: Update submodules |
123 | 123 | run: | |
124 | 124 | git submodule update --init --recursive --jobs 4 |
| 125 | + - name: ccache |
| 126 | + uses: hendrikmuhs/[email protected] |
| 127 | + with: |
| 128 | + key: ${{ runner.os }}-x86_64-ccache |
| 129 | + max-size: 10G |
| 130 | + append-timestamp: true |
| 131 | + env: |
| 132 | + CCACHE_NOHASHDIR: "true" |
125 | 133 | - name: Run chdb/build.sh |
126 | 134 | timeout-minutes: 600 |
127 | 135 | run: | |
128 | 136 | export PATH="$HOME/.pyenv/bin:$PATH" |
129 | 137 | eval "$(pyenv init -)" |
130 | 138 | source ~/.cargo/env |
131 | | - pyenv shell 3.8 |
| 139 | + pyenv shell 3.9 |
132 | 140 | export PATH=$(brew --prefix llvm@19)/bin:$(brew --prefix lld@19)/bin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/binutils/bin:$PATH:/usr/local/opt/findutils/libexec/gnubin |
133 | 141 | export CC=$(brew --prefix llvm@19)/bin/clang |
134 | 142 | export CXX=$(brew --prefix llvm@19)/bin/clang++ |
135 | 143 | bash gen_manifest.sh |
136 | 144 | bash ./chdb/build.sh |
137 | | - pyenv shell 3.8 |
| 145 | + pyenv shell 3.9 |
138 | 146 | bash -x ./chdb/test_smoke.sh |
139 | 147 | continue-on-error: false |
140 | 148 | - name: Run chdb/build/build_static_lib.sh |
141 | 149 | timeout-minutes: 600 |
142 | 150 | run: | |
143 | | - export PATH=$HOME/.pyenv/bin:$(brew --prefix llvm@19)/bin:$(brew --prefix lld@19)/bin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/binutils/bin:$PATH:/usr/local/opt/findutils/libexec/gnubin |
| 151 | + export PATH="$HOME/.pyenv/bin:$PATH" |
| 152 | + eval "$(pyenv init -)" |
| 153 | + source ~/.cargo/env |
| 154 | + export PATH=$(brew --prefix llvm@19)/bin:$(brew --prefix lld@19)/bin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/binutils/bin:$PATH:/usr/local/opt/findutils/libexec/gnubin |
144 | 155 | export CC=$(brew --prefix llvm@19)/bin/clang |
145 | 156 | export CXX=$(brew --prefix llvm@19)/bin/clang++ |
146 | | - source ~/.cargo/env |
147 | | - eval "$(pyenv init -)" |
148 | | - pyenv shell 3.8 |
| 157 | + pyenv shell 3.9 |
149 | 158 | bash ./chdb/build/build_static_lib.sh |
150 | 159 | pyenv shell --unset |
151 | 160 | continue-on-error: false |
@@ -201,25 +210,31 @@ jobs: |
201 | 210 | export PATH=$(brew --prefix llvm@19)/bin:$(brew --prefix lld@19)/bin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/binutils/bin:$PATH:/usr/local/opt/findutils/libexec/gnubin |
202 | 211 | export CC=$(brew --prefix llvm@19)/bin/clang |
203 | 212 | export CXX=$(brew --prefix llvm@19)/bin/clang++ |
204 | | - pyenv shell 3.8 |
| 213 | + pyenv shell 3.9 |
205 | 214 | make wheel |
206 | 215 | - name: Fix wheel platform tag |
207 | 216 | run: | |
208 | 217 | export PATH="$HOME/.pyenv/bin:$PATH" |
209 | 218 | eval "$(pyenv init -)" |
210 | | - pyenv shell 3.8 |
| 219 | + pyenv shell 3.9 |
211 | 220 | python -m wheel tags --platform-tag=macosx_10_15_x86_64 --remove dist/*.whl |
212 | 221 | - name: Setup core dump collection |
213 | 222 | run: | |
214 | 223 | mkdir -p tmp/core |
215 | 224 | sudo sysctl kern.corefile=$PWD/tmp/core/core.%P |
216 | 225 | sudo sysctl kern.coredump=1 |
217 | 226 | ulimit -c unlimited |
| 227 | + - name: Free up disk space |
| 228 | + run: | |
| 229 | + # Clean more build artifacts |
| 230 | + rm -rf buildlib/contrib 2>/dev/null || true |
| 231 | + rm -rf buildlib/base 2>/dev/null || true |
| 232 | + rm -rf buildlib/src 2>/dev/null || true |
218 | 233 | - name: Test wheel on all Python versions |
219 | 234 | run: | |
220 | 235 | export PATH="$HOME/.pyenv/bin:$PATH" |
221 | 236 | eval "$(pyenv init -)" |
222 | | - for version in 3.8 3.9 3.10 3.11 3.12 3.13; do |
| 237 | + for version in 3.9 3.10 3.11 3.12 3.13; do |
223 | 238 | echo "Testing chdb on Python $version" |
224 | 239 | pyenv shell $version |
225 | 240 | python -m pip install dist/*.whl --force-reinstall |
@@ -291,7 +306,7 @@ jobs: |
291 | 306 | run: | |
292 | 307 | export PATH="$HOME/.pyenv/bin:$PATH" |
293 | 308 | eval "$(pyenv init -)" |
294 | | - pyenv shell 3.8 |
| 309 | + pyenv shell 3.9 |
295 | 310 | python -m twine upload dist/*.whl |
296 | 311 | env: |
297 | 312 | TWINE_USERNAME: __token__ |
|
0 commit comments