Download .github/scripts/compute-bazel-windows-path.ps1 from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 3.63 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/.github/scripts/compute-bazel-windows-path.ps1
- Command line
-
hf download hf://SaylorTwift/codex/.github/scripts/compute-bazel-windows-path.ps1
-
curl -L -o compute-bazel-windows-path.ps1 https://huggingface.co/SaylorTwift/codex/resolve/main/.github/scripts/compute-bazel-windows-path.ps1
3.63 kB
| <# | |
| BuildBuddy cache keys include the action and test environment, so Bazel should | |
| not inherit the full hosted-runner PATH on Windows. That PATH includes volatile | |
| tool entries, such as Maven, that can change independently of this repo and | |
| cause avoidable cache misses. | |
| This script derives a smaller, cache-stable PATH that keeps the Windows | |
| toolchain entries Bazel-backed CI tasks need: MSVC and Windows SDK paths, | |
| MinGW runtime DLL paths for gnullvm-built tests, Git, PowerShell, Node, Python, | |
| DotSlash, and the standard Windows system directories. | |
| `setup-bazel-ci` runs this after exporting the MSVC environment, and the script | |
| publishes the result via `GITHUB_ENV` as `CODEX_BAZEL_WINDOWS_PATH` so later | |
| steps can pass that explicit PATH to Bazel. | |
| #> | |
| $stablePathEntries = New-Object System.Collections.Generic.List[string] | |
| $seenEntries = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) | |
| $windowsAppsPath = if ([string]::IsNullOrWhiteSpace($env:LOCALAPPDATA)) { | |
| $null | |
| } else { | |
| "$($env:LOCALAPPDATA)\Microsoft\WindowsApps" | |
| } | |
| $windowsDir = if ($env:WINDIR) { | |
| $env:WINDIR | |
| } elseif ($env:SystemRoot) { | |
| $env:SystemRoot | |
| } else { | |
| $null | |
| } | |
| function Add-StablePathEntry { | |
| param([string]$PathEntry) | |
| if ([string]::IsNullOrWhiteSpace($PathEntry)) { | |
| return | |
| } | |
| if ($seenEntries.Add($PathEntry)) { | |
| [void]$stablePathEntries.Add($PathEntry) | |
| } | |
| } | |
| foreach ($pathEntry in ($env:PATH -split ';')) { | |
| if ([string]::IsNullOrWhiteSpace($pathEntry)) { | |
| continue | |
| } | |
| if ( | |
| $pathEntry -like '*Microsoft Visual Studio*' -or | |
| $pathEntry -like '*Windows Kits*' -or | |
| $pathEntry -like '*Microsoft SDKs*' -or | |
| $pathEntry -eq 'C:\mingw64\bin' -or | |
| $pathEntry -like 'C:\msys64\*\bin' -or | |
| $pathEntry -like 'C:\Program Files\Git\*' -or | |
| $pathEntry -like 'C:\Program Files\PowerShell\*' -or | |
| $pathEntry -like 'C:\hostedtoolcache\windows\node\*' -or | |
| $pathEntry -like 'C:\hostedtoolcache\windows\Python\*' -or | |
| $pathEntry -eq 'D:\a\_temp\install-dotslash\bin' -or | |
| ($windowsDir -and ($pathEntry -eq $windowsDir -or $pathEntry -like "${windowsDir}\*")) | |
| ) { | |
| Add-StablePathEntry $pathEntry | |
| } | |
| } | |
| $gitCommand = Get-Command git -ErrorAction SilentlyContinue | |
| if ($gitCommand) { | |
| Add-StablePathEntry (Split-Path $gitCommand.Source -Parent) | |
| } | |
| $nodeCommand = Get-Command node -ErrorAction SilentlyContinue | |
| if ($nodeCommand) { | |
| Add-StablePathEntry (Split-Path $nodeCommand.Source -Parent) | |
| } | |
| $python3Command = Get-Command python3 -ErrorAction SilentlyContinue | |
| if ($python3Command) { | |
| Add-StablePathEntry (Split-Path $python3Command.Source -Parent) | |
| } | |
| $pythonCommand = Get-Command python -ErrorAction SilentlyContinue | |
| if ($pythonCommand) { | |
| Add-StablePathEntry (Split-Path $pythonCommand.Source -Parent) | |
| } | |
| $pwshCommand = Get-Command pwsh -ErrorAction SilentlyContinue | |
| if ($pwshCommand) { | |
| Add-StablePathEntry (Split-Path $pwshCommand.Source -Parent) | |
| } | |
| foreach ($mingwPath in @('C:\mingw64\bin', 'C:\msys64\mingw64\bin', 'C:\msys64\ucrt64\bin')) { | |
| if (Test-Path $mingwPath) { | |
| Add-StablePathEntry $mingwPath | |
| } | |
| } | |
| if ($windowsAppsPath) { | |
| Add-StablePathEntry $windowsAppsPath | |
| } | |
| if ($stablePathEntries.Count -eq 0) { | |
| throw 'Failed to derive cache-stable Windows PATH.' | |
| } | |
| if ([string]::IsNullOrWhiteSpace($env:GITHUB_ENV)) { | |
| throw 'GITHUB_ENV must be set.' | |
| } | |
| $stablePath = $stablePathEntries -join ';' | |
| Write-Host 'Derived CODEX_BAZEL_WINDOWS_PATH entries:' | |
| foreach ($pathEntry in $stablePathEntries) { | |
| Write-Host " $pathEntry" | |
| } | |
| "CODEX_BAZEL_WINDOWS_PATH=$stablePath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |