aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/action.yml
blob: b262f8b9c5db2d87ca3cf3f2194406f3a4daeaa0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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