diff options
Diffstat (limited to 'action.yml')
-rw-r--r-- | action.yml | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..b262f8b --- /dev/null +++ b/action.yml @@ -0,0 +1,49 @@ +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 |