mirror of
https://github.com/egor-tensin/cleanup-path.git
synced 2025-07-03 01:54:37 +03:00
make it into a JavaScript action
This is a huge step back IMO, but I needed to be able to restore the original PATH back as a "post" step. Currently, composite actions don't support post-actions, but JavaScript ones do. I needed this due to a bug: actions/cache wouldn't find Git's tar on windows-2016 (the one in System32 would get used on windows-2019) if the PATH was cleaned up.
This commit is contained in:
parent
1520e0658b
commit
203b15ee12
4 changed files with 79 additions and 32 deletions
35
action.yml
35
action.yml
|
@ -11,38 +11,9 @@ inputs:
|
|||
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
|
||||
using: node12
|
||||
main: clean.js
|
||||
post: restore.js
|
||||
|
||||
branding:
|
||||
icon: star
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue