mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00

Some checks are pending
CI / Determine changes (push) Waiting to run
CI / lint (push) Waiting to run
CI / cargo clippy | ubuntu (push) Blocked by required conditions
CI / cargo clippy | windows (push) Blocked by required conditions
CI / cargo dev generate-all (push) Blocked by required conditions
CI / cargo shear (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / cargo test | ubuntu (push) Blocked by required conditions
CI / cargo test | macos (push) Blocked by required conditions
CI / cargo test | windows (push) Blocked by required conditions
CI / check windows trampoline | aarch64 (push) Blocked by required conditions
CI / build binary | windows aarch64 (push) Blocked by required conditions
CI / check windows trampoline | i686 (push) Blocked by required conditions
CI / check windows trampoline | x86_64 (push) Blocked by required conditions
CI / test windows trampoline | i686 (push) Blocked by required conditions
CI / test windows trampoline | x86_64 (push) Blocked by required conditions
CI / typos (push) Waiting to run
CI / build binary | linux libc (push) Blocked by required conditions
CI / build binary | linux musl (push) Blocked by required conditions
CI / build binary | macos aarch64 (push) Blocked by required conditions
CI / build binary | macos x86_64 (push) Blocked by required conditions
CI / build binary | windows x86_64 (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / build binary | freebsd (push) Blocked by required conditions
CI / ecosystem test | pydantic/pydantic-core (push) Blocked by required conditions
CI / ecosystem test | prefecthq/prefect (push) Blocked by required conditions
CI / ecosystem test | pallets/flask (push) Blocked by required conditions
CI / smoke test | linux (push) Blocked by required conditions
CI / check system | alpine (push) Blocked by required conditions
CI / smoke test | macos (push) Blocked by required conditions
CI / smoke test | windows x86_64 (push) Blocked by required conditions
CI / smoke test | windows aarch64 (push) Blocked by required conditions
CI / integration test | conda on ubuntu (push) Blocked by required conditions
CI / integration test | deadsnakes python3.9 on ubuntu (push) Blocked by required conditions
CI / integration test | free-threaded on windows (push) Blocked by required conditions
CI / integration test | pypy on ubuntu (push) Blocked by required conditions
CI / integration test | pypy on windows (push) Blocked by required conditions
CI / integration test | graalpy on ubuntu (push) Blocked by required conditions
CI / integration test | graalpy on windows (push) Blocked by required conditions
CI / integration test | pyodide on ubuntu (push) Blocked by required conditions
CI / integration test | github actions (push) Blocked by required conditions
CI / integration test | free-threaded python on github actions (push) Blocked by required conditions
CI / integration test | determine publish changes (push) Blocked by required conditions
CI / integration test | registries (push) Blocked by required conditions
CI / integration test | uv publish (push) Blocked by required conditions
CI / integration test | uv_build (push) Blocked by required conditions
CI / check cache | ubuntu (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
Previously we were using the XDG data dir to avoid symlinks, but there's no particular guarantee that that's not going to be a symlink too. Using the canonicalized temp dir by default is also slightly nicer for a couple reasons: It's sometimes faster (an in-memory tempfs on e.g. Arch), and it makes overriding `$TMPDIR` or `%TMP%` sufficient to control where tests put temp files, without needing to override `UV_INTERNAL__TEST_DIR` too.
92 lines
3.2 KiB
PowerShell
92 lines
3.2 KiB
PowerShell
# Configures a drive for testing in CI.
|
|
#
|
|
# When using standard GitHub Actions runners, a `D:` drive is present and has
|
|
# similar or better performance characteristics than a ReFS dev drive. Sometimes
|
|
# using a larger runner is still more performant (e.g., when running the test
|
|
# suite) and we need to create a dev drive. This script automatically configures
|
|
# the appropriate drive.
|
|
#
|
|
# When using GitHub Actions' "larger runners", the `D:` drive is not present and
|
|
# we create a DevDrive mount on `C:`. This is purported to be more performant
|
|
# than an ReFS drive, though we did not see a change when we switched over.
|
|
#
|
|
# When using Depot runners, the underling infrastructure is EC2, which does not
|
|
# support Hyper-V. The `New-VHD` commandlet only works with Hyper-V, but we can
|
|
# create a ReFS drive using `diskpart` and `format` directory. We cannot use a
|
|
# DevDrive, as that also requires Hyper-V. The Depot runners use `D:` already,
|
|
# so we must check if it's a Depot runner first, and we use `V:` as the target
|
|
# instead.
|
|
|
|
|
|
if ($env:DEPOT_RUNNER -eq "1") {
|
|
Write-Output "DEPOT_RUNNER detected, setting up custom dev drive..."
|
|
|
|
# Create VHD and configure drive using diskpart
|
|
$vhdPath = "C:\uv_dev_drive.vhdx"
|
|
@"
|
|
create vdisk file="$vhdPath" maximum=20480 type=expandable
|
|
attach vdisk
|
|
create partition primary
|
|
active
|
|
assign letter=V
|
|
"@ | diskpart
|
|
|
|
# Format the drive as ReFS
|
|
format V: /fs:ReFS /q /y
|
|
$Drive = "V:"
|
|
|
|
Write-Output "Custom dev drive created at $Drive"
|
|
} elseif (Test-Path "D:\") {
|
|
# Note `Get-PSDrive` is not sufficient because the drive letter is assigned.
|
|
Write-Output "Using existing drive at D:"
|
|
$Drive = "D:"
|
|
} else {
|
|
# The size (20 GB) is chosen empirically to be large enough for our
|
|
# workflows; larger drives can take longer to set up.
|
|
$Volume = New-VHD -Path C:/uv_dev_drive.vhdx -SizeBytes 20GB |
|
|
Mount-VHD -Passthru |
|
|
Initialize-Disk -Passthru |
|
|
New-Partition -AssignDriveLetter -UseMaximumSize |
|
|
Format-Volume -DevDrive -Confirm:$false -Force
|
|
|
|
$Drive = "$($Volume.DriveLetter):"
|
|
|
|
# Set the drive as trusted
|
|
# See https://learn.microsoft.com/en-us/windows/dev-drive/#how-do-i-designate-a-dev-drive-as-trusted
|
|
fsutil devdrv trust $Drive
|
|
|
|
# Disable antivirus filtering on dev drives
|
|
# See https://learn.microsoft.com/en-us/windows/dev-drive/#how-do-i-configure-additional-filters-on-dev-drive
|
|
fsutil devdrv enable /disallowAv
|
|
|
|
# Remount so the changes take effect
|
|
Dismount-VHD -Path C:/uv_dev_drive.vhdx
|
|
Mount-VHD -Path C:/uv_dev_drive.vhdx
|
|
|
|
# Show some debug information
|
|
Write-Output $Volume
|
|
fsutil devdrv query $Drive
|
|
|
|
Write-Output "Using Dev Drive at $Volume"
|
|
}
|
|
|
|
$Tmp = "$($Drive)\uv-tmp"
|
|
|
|
# Create the directory ahead of time in an attempt to avoid race-conditions
|
|
New-Item $Tmp -ItemType Directory
|
|
|
|
# Move Cargo to the dev drive
|
|
New-Item -Path "$($Drive)/.cargo/bin" -ItemType Directory -Force
|
|
if (Test-Path "C:/Users/runneradmin/.cargo") {
|
|
Copy-Item -Path "C:/Users/runneradmin/.cargo/*" -Destination "$($Drive)/.cargo/" -Recurse -Force
|
|
}
|
|
|
|
Write-Output `
|
|
"DEV_DRIVE=$($Drive)" `
|
|
"TMP=$($Tmp)" `
|
|
"TEMP=$($Tmp)" `
|
|
"RUSTUP_HOME=$($Drive)/.rustup" `
|
|
"CARGO_HOME=$($Drive)/.cargo" `
|
|
"UV_WORKSPACE=$($Drive)/uv" `
|
|
"PATH=$($Drive)/.cargo/bin;$env:PATH" `
|
|
>> $env:GITHUB_ENV
|