mirror of
https://github.com/astral-sh/uv
synced 2026-01-24 23:10:11 -05:00
Previously, we couldn't use a DevDrive
(https://github.com/astral-sh/uv/pull/3522#issuecomment-2111448930)
because our Windows version was not sufficient.
Recently, I upgraded our larger runners to Windows 2025 preview
(https://github.com/astral-sh/uv/pull/10298) which I presume has support
for this.
I removed ReFS in
953c3535c3
which didn't seem to do anything to performance.
I also found some notes on "trusted" DevDrives and "disabling anti-virus
filtering" which I simply have to try.
44 lines
1.3 KiB
PowerShell
44 lines
1.3 KiB
PowerShell
# This creates a 20GB dev drive, and exports all required environment
|
|
# variables so that rustup, uv and others all use the dev drive as much
|
|
# as possible.
|
|
$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
|
|
|
|
# Configure a temporary directory
|
|
$Tmp = "$($Drive)/uv-tmp"
|
|
|
|
# Create the directory ahead of time in an attempt to avoid race-conditions
|
|
New-Item $Tmp -ItemType Directory
|
|
|
|
Write-Output `
|
|
"DEV_DRIVE=$($Drive)" `
|
|
"TMP=$($Tmp)" `
|
|
"TEMP=$($Tmp)" `
|
|
"UV_INTERNAL__TEST_DIR=$($Tmp)" `
|
|
"RUSTUP_HOME=$($Drive)/.rustup" `
|
|
"CARGO_HOME=$($Drive)/.cargo" `
|
|
"UV_WORKSPACE=$($Drive)/uv" `
|
|
>> $env:GITHUB_ENV
|
|
|