aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/action.yml
diff options
context:
space:
mode:
Diffstat (limited to 'action.yml')
-rw-r--r--action.yml49
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