mirror of
https://github.com/egor-tensin/cleanup-path.git
synced 2025-05-01 00:59:32 +03:00
49 lines
1.4 KiB
YAML
49 lines
1.4 KiB
YAML
name: Clean up PATH
|
|
description: Clean up PATH environment variable on Windows workers
|
|
|
|
inputs:
|
|
dirs:
|
|
description: Additional paths, separated by a semicolon (;)
|
|
required: false
|
|
default:
|
|
description: Add the default paths
|
|
required: false
|
|
default: 1
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- run: |
|
|
New-Variable os -Value ('${{ runner.os }}') -Option Constant
|
|
|
|
New-Variable windows_host -Value ($os -eq 'Windows') -Option Constant
|
|
|
|
New-Variable dirs -Value ('${{ inputs.dirs }}') -Option Constant
|
|
New-Variable default -Value ('${{ inputs.default }}' -eq '1') -Option Constant
|
|
|
|
if ($windows_host) {
|
|
$sep = [IO.Path]::PathSeparator
|
|
|
|
$new_path = $dirs.Split($sep, [System.StringSplitOptions]::RemoveEmptyEntries)
|
|
|
|
if ($default) {
|
|
# This seems to be the default on new installations.
|
|
# Also, MSYS2 does this.
|
|
$new_path += @(
|
|
'C:\Windows\system32',
|
|
'C:\Windows',
|
|
'C:\Windows\System32\Wbem',
|
|
'C:\Windows\System32\WindowsPowerShell\v1.0\'
|
|
)
|
|
}
|
|
|
|
$new_path = $new_path -join $sep
|
|
echo "PATH=$new_path" >> $env:GITHUB_ENV
|
|
} else {
|
|
echo "::warning ::Not going to clean up PATH variable on $os"
|
|
}
|
|
shell: pwsh
|
|
|
|
branding:
|
|
icon: star
|
|
color: green
|