RamblingCookieMonster / BuildHelpers

Helper functions for PowerShell CI/CD scenarios
MIT License
216 stars 47 forks source link

Set-BuildEnvironment fails when git is not installed #133

Open rdavisunr opened 2 years ago

rdavisunr commented 2 years ago

Hello,

Set-BuildEnvironment fails when git is not installed.

This has been an issue in the past, so there must have been a regression error at some point.

BuildHelpers Version

2.0.16

PowerShell Version

7.2.5 (Core)

Cause Locations

Error Source

The lines that are failing both fail for the same reason...

if(!$PSboundParameters.ContainsKey('GitPath')) {
   $GitPath = (Get-Command $GitPath -CommandType Application -ErrorAction SilentlyContinue)[0].Path
}

(Get-Command $GitPath -CommandType Application -ErrorAction SilentlyContinue) returns $null because git is not found, then the code goes on to access $null[0].Path, which generates an InvalidOperationException: Cannot index into a null array.

Expected Behavior

No errors should occur when git is missing

Actual Behavior

InvalidOperation: C:\Users\Administrator\Documents\PowerShell\Modules\BuildHelpers\2.0.16\Public\Get-BuildVariable.ps1:79
Line |
  79 |          $GitPath = (Get-Command $GitPath -CommandType Application -Er …
     |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Cannot index into a null array.

InvalidOperation: C:\Users\Administrator\Documents\PowerShell\Modules\BuildHelpers\2.0.16\Public\Get-ProjectName.ps1:57
Line |
  57 |          $GitPath = (Get-Command $GitPath -ErrorAction SilentlyContinu …
     |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Cannot index into a null array.

Steps to Reproduce

On a system without git installed...

Install-Module -Name BuildHelpers -RequiredVersion 2.0.16 -Scope CurrentUser

Import-Module BuildHelpers

Set-BuildEnvironment

Workarounds

Install git

References (similar issue from the past)