2727 outputs :
2828 # Flag that is raised when any code is changed
2929 code : ${{ steps.changed.outputs.code_any_changed }}
30+ # Flag that is raised when uv.schema.json is changed (e.g., in a release PR)
31+ schema : ${{ steps.changed.outputs.schema_changed }}
3032 steps :
3133 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3234 with :
@@ -40,10 +42,16 @@ jobs:
4042 CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha || 'origin/main' }}...HEAD)
4143
4244 CODE_CHANGED=false
45+ SCHEMA_CHANGED=false
4346
4447 while IFS= read -r file; do
45- # Generated markdown and JSON files are checked during test runs.
46- if [[ "${file}" =~ ^docs/ && ! "${file}" =~ ^docs/reference/(cli|settings).md && ! "${file}" =~ ^docs/reference/environment.md ]]; then
48+ # Check if the schema file changed (e.g., in a release PR)
49+ if [[ "${file}" == "uv.schema.json" ]]; then
50+ echo "Detected schema change: ${file}"
51+ SCHEMA_CHANGED=true
52+ fi
53+
54+ if [[ "${file}" =~ ^docs/ ]]; then
4755 echo "Skipping ${file} (matches docs/ pattern)"
4856 continue
4957 fi
7078
7179 done <<< "${CHANGED_FILES}"
7280 echo "code_any_changed=${CODE_CHANGED}" >> "${GITHUB_OUTPUT}"
81+ echo "schema_changed=${SCHEMA_CHANGED}" >> "${GITHUB_OUTPUT}"
7382 lint :
7483 timeout-minutes : 10
7584 name : " lint"
8998 - name : " Install uv"
9099 uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
91100 with :
92- version : " 0.9.10 "
101+ version : " 0.9.13 "
93102
94103 - name : " rustfmt"
95104 run : cargo fmt --all --check
@@ -135,7 +144,7 @@ jobs:
135144 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
136145 with :
137146 persist-credentials : false
138- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
147+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
139148 with :
140149 save-if : ${{ github.ref == 'refs/heads/main' }}
141150 - name : " Check uv_build dependencies"
@@ -167,7 +176,7 @@ jobs:
167176 run : |
168177 Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
169178
170- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
179+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
171180 with :
172181 workspaces : ${{ env.UV_WORKSPACE }}
173182
@@ -188,7 +197,7 @@ jobs:
188197 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
189198 with :
190199 persist-credentials : false
191- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
200+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
192201 with :
193202 save-if : ${{ github.ref == 'refs/heads/main' }}
194203 - name : " cargo publish dry-run"
@@ -204,11 +213,16 @@ jobs:
204213 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
205214 with :
206215 persist-credentials : false
207- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
216+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
208217 with :
209218 save-if : ${{ github.ref == 'refs/heads/main' }}
210219 - name : " Generate all"
211- run : cargo dev generate-all --mode check
220+ run : cargo dev generate-all --mode dry-run
221+ - name : " Check sysconfig mappings"
222+ run : cargo dev generate-sysconfig-metadata --mode check
223+ - name : " Check JSON schema"
224+ if : ${{ needs.determine_changes.outputs.schema == 'true' }}
225+ run : cargo dev generate-json-schema --mode check
212226
213227 cargo-shear :
214228 timeout-minutes : 10
@@ -241,14 +255,14 @@ jobs:
241255
242256 - uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
243257
244- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
258+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
245259
246260 - name : " Install Rust toolchain"
247261 run : rustup show
248262
249263 - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
250264 with :
251- version : " 0.9.10 "
265+ version : " 0.9.13 "
252266
253267 - name : " Install required Python versions"
254268 run : uv python install
@@ -280,7 +294,7 @@ jobs:
280294 --status-level skip --failure-output immediate-final --no-fail-fast -j 20 --final-status-level slow
281295
282296 cargo-test-macos :
283- timeout-minutes : 15
297+ timeout-minutes : 20
284298 needs : determine_changes
285299 # Only run macOS tests on main without opt-in
286300 if : ${{ contains(github.event.pull_request.labels.*.name, 'test:macos') || github.ref == 'refs/heads/main' }}
@@ -293,14 +307,14 @@ jobs:
293307
294308 - uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
295309
296- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
310+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
297311
298312 - name : " Install Rust toolchain"
299313 run : rustup show
300314
301315 - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
302316 with :
303- version : " 0.9.10 "
317+ version : " 0.9.13 "
304318
305319 - name : " Install required Python versions"
306320 run : uv python install
@@ -317,7 +331,7 @@ jobs:
317331 run : |
318332 cargo nextest run \
319333 --no-default-features \
320- --features python,python-managed,pypi,git,performance,crates-io,native-auth,apple-native \
334+ --features python,python-managed,pypi,git,git-lfs, performance,crates-io,native-auth,apple-native \
321335 --workspace \
322336 --status-level skip --failure-output immediate-final --no-fail-fast -j 12 --final-status-level slow
323337
@@ -342,12 +356,12 @@ jobs:
342356
343357 - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
344358 with :
345- version : " 0.9.10 "
359+ version : " 0.9.13 "
346360
347361 - name : " Install required Python versions"
348362 run : uv python install
349363
350- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
364+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
351365 with :
352366 workspaces : ${{ env.UV_WORKSPACE }}
353367
@@ -400,7 +414,7 @@ jobs:
400414 run : |
401415 Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
402416
403- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
417+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
404418 with :
405419 workspaces : ${{ env.UV_WORKSPACE }}/crates/uv-trampoline
406420
@@ -460,7 +474,7 @@ jobs:
460474 - name : Copy Git Repo to Dev Drive
461475 run : |
462476 Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
463- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
477+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
464478 with :
465479 workspaces : ${{ env.UV_WORKSPACE }}/crates/uv-trampoline
466480 - name : " Install Rust toolchain"
@@ -478,8 +492,8 @@ jobs:
478492 working-directory : ${{ env.UV_WORKSPACE }}/crates/uv-trampoline
479493 run : |
480494 cargo build --target ${{ matrix.target-arch }}-pc-windows-msvc
481- cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-console.exe trampolines/uv-trampoline-${{ matrix.target-arch }}-console.exe
482- cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-gui.exe trampolines/uv-trampoline-${{ matrix.target-arch }}-gui.exe
495+ cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-console.exe ../uv-trampoline-builder/ trampolines/uv-trampoline-${{ matrix.target-arch }}-console.exe
496+ cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-gui.exe ../uv-trampoline-builder/ trampolines/uv-trampoline-${{ matrix.target-arch }}-gui.exe
483497 - name : " Test new binaries"
484498 working-directory : ${{ env.UV_WORKSPACE }}
485499 run : |
@@ -507,9 +521,17 @@ jobs:
507521 persist-credentials : false
508522 - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
509523 with :
510- version : " 0.9.10 "
524+ version : " 0.9.13 "
511525
512526 - uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
527+ - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
528+ with :
529+ save-if : ${{ github.ref == 'refs/heads/main' }}
530+ - name : " Generate reference documentation"
531+ run : |
532+ cargo dev generate-options-reference
533+ cargo dev generate-cli-reference
534+ cargo dev generate-env-vars-reference
513535 - name : " Add SSH key"
514536 if : ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }}
515537 uses : webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
@@ -536,7 +558,7 @@ jobs:
536558
537559 - uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
538560
539- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
561+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
540562
541563 - name : " Build"
542564 run : cargo build
@@ -563,7 +585,7 @@ jobs:
563585
564586 - uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
565587
566- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
588+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
567589
568590 - name : " Build"
569591 run : cargo build
@@ -595,7 +617,7 @@ jobs:
595617 sudo apt-get install musl-tools
596618 rustup target add x86_64-unknown-linux-musl
597619
598- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
620+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
599621
600622 - name : " Build"
601623 run : cargo build --target x86_64-unknown-linux-musl --bin uv --bin uvx
@@ -622,7 +644,7 @@ jobs:
622644
623645 - uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
624646
625- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
647+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
626648 - name : " Build"
627649 run : cargo build --bin uv --bin uvx
628650
@@ -648,7 +670,7 @@ jobs:
648670
649671 - uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
650672
651- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
673+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
652674 - name : " Build"
653675 run : cargo build --bin uv --bin uvx
654676
@@ -680,7 +702,7 @@ jobs:
680702 run : |
681703 Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
682704
683- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
705+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
684706 with :
685707 workspaces : ${{ env.UV_WORKSPACE }}
686708
@@ -717,7 +739,7 @@ jobs:
717739 run : |
718740 Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
719741
720- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
742+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
721743 with :
722744 workspaces : ${{ env.UV_WORKSPACE }}
723745
@@ -758,7 +780,7 @@ jobs:
758780 MSRV : ${{ steps.msrv.outputs.value }}
759781 - name : " Install mold"
760782 uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
761- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
783+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
762784 - run : cargo +${MSRV} build
763785 env :
764786 MSRV : ${{ steps.msrv.outputs.value }}
@@ -775,7 +797,7 @@ jobs:
775797 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
776798 with :
777799 persist-credentials : false
778- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
800+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
779801 - name : " Cross build"
780802 run : |
781803 # Install cross from `freebsd-firecracker`
@@ -1848,7 +1870,7 @@ jobs:
18481870 run : chmod +x ./uv
18491871
18501872 - name : " Configure AWS credentials"
1851- uses : aws-actions/configure-aws-credentials@a03048d87541d1d9fcf2ecf528a4a65ba9bd7838 # v5.0.0
1873+ uses : aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5.1.1
18521874 with :
18531875 aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
18541876 aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -2906,7 +2928,7 @@ jobs:
29062928 with :
29072929 persist-credentials : false
29082930
2909- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
2931+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
29102932
29112933 - name : " Install Rust toolchain"
29122934 run : rustup show
@@ -2946,7 +2968,7 @@ jobs:
29462968 with :
29472969 persist-credentials : false
29482970
2949- - uses : Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
2971+ - uses : Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
29502972
29512973 - name : " Install Rust toolchain"
29522974 run : rustup show
0 commit comments