summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Doran <sdoran@redhat.com>2020-12-07 18:33:52 -0500
committerGitHub <noreply@github.com>2020-12-07 17:33:52 -0600
commit2a6b411a80c8c539786165b2fa3afcae90744794 (patch)
tree74c3b33eb38caf79f8d1edc259d4036f1b231d1a
parent4e34aa0c1990fcbeb2248996d3b62fc40d0f4c96 (diff)
downloadansible-2a6b411a80c8c539786165b2fa3afcae90744794.tar.gz
[stable-2.10] ansible-test - skip installing PowerShell sanity test reqs if they are already installed (#72423) (#72424)
(cherry picked from commit 809d5fc398) Co-authored-by: Jordan Borean <jborean93@gmail.com>
-rw-r--r--changelogs/fragments/ps-sanity-requirements.yml2
-rwxr-xr-xtest/lib/ansible_test/_data/requirements/sanity.ps123
2 files changed, 23 insertions, 2 deletions
diff --git a/changelogs/fragments/ps-sanity-requirements.yml b/changelogs/fragments/ps-sanity-requirements.yml
new file mode 100644
index 0000000000..682a23f3aa
--- /dev/null
+++ b/changelogs/fragments/ps-sanity-requirements.yml
@@ -0,0 +1,2 @@
+bugfixes:
+- ansible-test - Skip installing requirements if they are already installed.
diff --git a/test/lib/ansible_test/_data/requirements/sanity.ps1 b/test/lib/ansible_test/_data/requirements/sanity.ps1
index 1875c306ba..1ea1f8e550 100755
--- a/test/lib/ansible_test/_data/requirements/sanity.ps1
+++ b/test/lib/ansible_test/_data/requirements/sanity.ps1
@@ -10,8 +10,27 @@ Set-StrictMode -Version 2.0
$ErrorActionPreference = "Stop"
$ProgressPreference = 'SilentlyContinue'
+Function Install-PSModule {
+ [CmdletBinding()]
+ param(
+ [Parameter(Mandatory=$true)]
+ [String]
+ $Name,
+
+ [Parameter(Mandatory=$true)]
+ [Version]
+ $RequiredVersion
+ )
+
+ # In case PSGallery is down we check if the module is already installed.
+ $installedModule = Get-Module -Name $Name -ListAvailable | Where-Object Version -eq $RequiredVersion
+ if (-not $installedModule) {
+ Install-Module -Name $Name -RequiredVersion $RequiredVersion -Scope CurrentUser
+ }
+}
+
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
-Install-Module -Name PSScriptAnalyzer -RequiredVersion 1.18.0 -Scope CurrentUser
+Install-PSModule -Name PSScriptAnalyzer -RequiredVersion 1.18.0
if ($IsContainer) {
# PSScriptAnalyzer contain lots of json files for the UseCompatibleCommands check. We don't use this rule so by
@@ -23,4 +42,4 @@ if ($IsContainer) {
}
# Installed the PSCustomUseLiteralPath rule
-Install-Module -Name PSSA-PSCustomUseLiteralPath -RequiredVersion 0.1.1 -Scope CurrentUser
+Install-PSModule -Name PSSA-PSCustomUseLiteralPath -RequiredVersion 0.1.1