-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInstall-Requirements.ps1
More file actions
17 lines (15 loc) · 900 Bytes
/
Install-Requirements.ps1
File metadata and controls
17 lines (15 loc) · 900 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$requiredModules = @(
@{ ModuleName = 'ModuleBuilder'; MinimumVersion = '3.1.8'; MaximumVersion = '4.999.999' }
@{ ModuleName = 'Pester'; MinimumVersion = '5.7.0'; MaximumVersion = '5.999.999' }
@{ ModuleName = 'InvokeBuild'; MinimumVersion = '5.14.23'; MaximumVersion = '6.999.999' }
@{ ModuleName = 'platyPS'; MinimumVersion = '0.14.2'; MaximumVersion = '1.999.999' }
)
foreach ($moduleItem in $requiredModules) {
try {
Get-InstalledModule -Name $($moduleItem.ModuleName) -MinimumVersion $($moduleItem.MinimumVersion) -MaximumVersion $($moduleItem.MaximumVersion) -ErrorAction Stop | Select-Object Name, Version
}
catch {
Write-Host "Installing $($moduleItem.ModuleName)"
Install-Module -Name $($moduleItem.ModuleName) -MinimumVersion $($moduleItem.MinimumVersion) -MaximumVersion $($moduleItem.MaximumVersion) -Scope CurrentUser -Force
}
}