3636env :
3737 CARGO_TERM_COLOR : always
3838 RUST_BACKTRACE : 1
39+ UV_LOCKED : true
3940
4041jobs :
4142 # ============================================
4748 - uses : actions/checkout@v6
4849
4950 - name : Setup Rust
50- uses : dtolnay/rust-toolchain@stable
51+ uses : dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
5152 with :
5253 toolchain : " nightly"
5354 components : rustfmt
6869 with :
6970 python-version : " 3.12"
7071
71- - uses : astral-sh/setup-uv@v6
72+ - uses : astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
7273 with :
7374 enable-cache : true
7475
@@ -98,12 +99,21 @@ jobs:
9899 - name : Check Cargo.toml formatting
99100 run : taplo format --check
100101
102+ check-crates-patch :
103+ if : inputs.build_mode == 'release' && startsWith(github.ref, 'refs/tags/')
104+ runs-on : ubuntu-latest
105+ steps :
106+ - uses : actions/checkout@v6
107+
108+ - name : Ensure [patch.crates-io] is empty
109+ run : python3 dev/check_crates_patch.py
110+
101111 generate-license :
102112 runs-on : ubuntu-latest
103113 steps :
104114 - uses : actions/checkout@v6
105115
106- - uses : astral-sh/setup-uv@v6
116+ - uses : astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
107117 with :
108118 enable-cache : true
109119
@@ -115,7 +125,7 @@ jobs:
115125 - name : Generate license file
116126 run : uv run --no-project python ./dev/create_license.py
117127
118- - uses : actions/upload-artifact@v6
128+ - uses : actions/upload-artifact@v7
119129 with :
120130 name : python-wheel-license
121131 path : LICENSE.txt
@@ -132,20 +142,20 @@ jobs:
132142
133143 - run : rm LICENSE.txt
134144 - name : Download LICENSE.txt
135- uses : actions/download-artifact@v7
145+ uses : actions/download-artifact@v8
136146 with :
137147 name : python-wheel-license
138148 path : .
139149
140150 - name : Setup Rust
141- uses : dtolnay/rust-toolchain@stable
151+ uses : dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
142152
143153 - name : Cache Cargo
144154 uses : Swatinem/rust-cache@v2
145155 with :
146156 key : ${{ inputs.build_mode }}
147157
148- - uses : astral-sh/setup-uv@v6
158+ - uses : astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
149159 with :
150160 enable-cache : true
151161
@@ -177,13 +187,13 @@ jobs:
177187 rustup-components : rust-std
178188
179189 - name : Archive wheels
180- uses : actions/upload-artifact@v6
190+ uses : actions/upload-artifact@v7
181191 with :
182192 name : dist-manylinux-x86_64
183193 path : dist/*
184194
185195 - name : Archive FFI test wheel
186- uses : actions/upload-artifact@v6
196+ uses : actions/upload-artifact@v7
187197 with :
188198 name : test-ffi-manylinux-x86_64
189199 path : examples/datafusion-ffi-example/dist/*
@@ -200,23 +210,36 @@ jobs:
200210
201211 - run : rm LICENSE.txt
202212 - name : Download LICENSE.txt
203- uses : actions/download-artifact@v7
213+ uses : actions/download-artifact@v8
204214 with :
205215 name : python-wheel-license
206216 path : .
207217
208218 - name : Setup Rust
209- uses : dtolnay/rust-toolchain@stable
219+ uses : dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
210220
211221 - name : Cache Cargo
212222 uses : Swatinem/rust-cache@v2
213223 with :
214224 key : ${{ inputs.build_mode }}
215225
216- - uses : astral-sh/setup-uv@v6
226+ - uses : astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
217227 with :
218228 enable-cache : true
219229
230+ - name : Add extra swap for release build
231+ if : inputs.build_mode == 'release'
232+ run : |
233+ set -euxo pipefail
234+ sudo swapoff -a || true
235+ sudo rm -f /swapfile
236+ sudo fallocate -l 16G /swapfile || sudo dd if=/dev/zero of=/swapfile bs=1M count=16384
237+ sudo chmod 600 /swapfile
238+ sudo mkswap /swapfile
239+ sudo swapon /swapfile
240+ free -h
241+ swapon --show
242+
220243 - name : Build (release mode)
221244 uses : PyO3/maturin-action@v1
222245 if : inputs.build_mode == 'release'
@@ -236,7 +259,7 @@ jobs:
236259 rustup-components : rust-std
237260
238261 - name : Archive wheels
239- uses : actions/upload-artifact@v6
262+ uses : actions/upload-artifact@v7
240263 if : inputs.build_mode == 'release'
241264 with :
242265 name : dist-manylinux-aarch64
@@ -257,11 +280,11 @@ jobs:
257280 steps :
258281 - uses : actions/checkout@v6
259282
260- - uses : dtolnay/rust-toolchain@stable
283+ - uses : dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
261284
262285 - run : rm LICENSE.txt
263286 - name : Download LICENSE.txt
264- uses : actions/download-artifact@v7
287+ uses : actions/download-artifact@v8
265288 with :
266289 name : python-wheel-license
267290 path : .
@@ -271,7 +294,7 @@ jobs:
271294 with :
272295 key : ${{ inputs.build_mode }}
273296
274- - uses : astral-sh/setup-uv@v7
297+ - uses : astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
275298 with :
276299 enable-cache : true
277300
@@ -311,7 +334,7 @@ jobs:
311334 run : find target/wheels/
312335
313336 - name : Archive wheels
314- uses : actions/upload-artifact@v6
337+ uses : actions/upload-artifact@v7
315338 if : inputs.build_mode == 'release'
316339 with :
317340 name : dist-${{ matrix.os }}
@@ -331,11 +354,11 @@ jobs:
331354 steps :
332355 - uses : actions/checkout@v6
333356
334- - uses : dtolnay/rust-toolchain@stable
357+ - uses : dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
335358
336359 - run : rm LICENSE.txt
337360 - name : Download LICENSE.txt
338- uses : actions/download-artifact@v7
361+ uses : actions/download-artifact@v8
339362 with :
340363 name : python-wheel-license
341364 path : .
@@ -345,7 +368,7 @@ jobs:
345368 with :
346369 key : ${{ inputs.build_mode }}
347370
348- - uses : astral-sh/setup-uv@v7
371+ - uses : astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
349372 with :
350373 enable-cache : true
351374
@@ -366,7 +389,7 @@ jobs:
366389 run : find target/wheels/
367390
368391 - name : Archive wheels
369- uses : actions/upload-artifact@v6
392+ uses : actions/upload-artifact@v7
370393 with :
371394 name : dist-macos-aarch64
372395 path : target/wheels/*
@@ -384,7 +407,7 @@ jobs:
384407 - uses : actions/checkout@v6
385408 - run : rm LICENSE.txt
386409 - name : Download LICENSE.txt
387- uses : actions/download-artifact@v7
410+ uses : actions/download-artifact@v8
388411 with :
389412 name : python-wheel-license
390413 path : .
@@ -422,7 +445,7 @@ jobs:
422445 - build-sdist
423446 steps :
424447 - name : Merge Build Artifacts
425- uses : actions/upload-artifact/merge@v6
448+ uses : actions/upload-artifact/merge@v7
426449 with :
427450 name : dist
428451 pattern : dist-*
@@ -469,13 +492,13 @@ jobs:
469492 python-version : " 3.10"
470493
471494 - name : Install dependencies
472- uses : astral-sh/setup-uv@v7
495+ uses : astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
473496 with :
474497 enable-cache : true
475498
476499 # Download the Linux wheel built in the previous job
477500 - name : Download pre-built Linux wheel
478- uses : actions/download-artifact@v7
501+ uses : actions/download-artifact@v8
479502 with :
480503 name : dist-manylinux-x86_64
481504 path : wheels/
0 commit comments