Refactor AzModules installation (#945)

* refactor azmodules installation
This commit is contained in:
Dibir Magomedsaygitov
2020-05-29 14:26:08 +03:00
committed by GitHub
parent 7b4cd37ecf
commit 696110c157

View File

@@ -8,90 +8,36 @@
source $HELPER_SCRIPTS/document.sh source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) # List of versions
if isUbuntu20 ; then if isUbuntu20 ; then
latestVersion=$(pwsh -Command '(Find-Module -Name Az).Version') versions=$(pwsh -Command '(Find-Module -Name Az).Version')
modulePath="/usr/share/az_$latestVersion" else
echo "Save Az Module ($latestVersion) to $modulePath" versions=(1.0.0 1.6.0 2.3.2 2.6.0 2.8.0 3.1.0 3.5.0 3.8.0)
pwsh -Command "Save-Module -Name Az -LiteralPath $modulePath -RequiredVersion $latestVersion -Force" fi
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
for version in ${versions[@]}; do
pwsh -Command "Save-Module -Name Az -LiteralPath /usr/share/az_$version -RequiredVersion $version -Force"
done
# Run tests to determine that the software installed as expected # Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work" echo "Testing to make sure that script performed as expected, and basic scenarios work"
if ! pwsh -Command "\$env:PSModulePath = '${modulePath}:' + \$env:PSModulePath for version in ${versions[@]}; do
modulePath="/usr/share/az_$version"
pwsh -Command "
\$env:PSModulePath = '${modulePath}:' + \$env:PSModulePath;
if ( -not (Get-Module -ListAvailable -Name Az.Accounts)) { if ( -not (Get-Module -ListAvailable -Name Az.Accounts)) {
Write-Host 'Az Module was not installed' Write-Host 'Az Module was not installed'
exit 1 exit 1
}"; then }"
exit 1 if [ $? -ne 0 ]; then
fi echo "Az version $version is not installed"
# Document what was added to the image
DocumentInstalledItem "Az Module ($latestVersion)"
exit 0
fi
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_1.0.0 -RequiredVersion 1.0.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_1.6.0 -RequiredVersion 1.6.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.3.2 -RequiredVersion 2.3.2 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.6.0 -RequiredVersion 2.6.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.8.0 -RequiredVersion 2.8.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_3.1.0 -RequiredVersion 3.1.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_3.5.0 -RequiredVersion 3.5.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_3.8.0 -RequiredVersion 3.8.0 -Force'
# Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work"
if ! pwsh -Command '$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_1.0.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_1.6.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_2.3.2:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_2.6.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_2.8.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_3.1.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_3.5.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_3.8.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath'; then
exit 1 exit 1
fi fi
done
# Document what was added to the image # Document what was added to the image
echo "Lastly, documenting what we added to the metadata file" echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Az Module (1.0.0)" for version in ${versions[@]}; do
DocumentInstalledItem "Az Module (1.6.0)" DocumentInstalledItem "Az Module ($version)"
DocumentInstalledItem "Az Module (2.3.2)" done
DocumentInstalledItem "Az Module (2.6.0)"
DocumentInstalledItem "Az Module (2.8.0)"
DocumentInstalledItem "Az Module (3.1.0)"
DocumentInstalledItem "Az Module (3.5.0)"
DocumentInstalledItem "Az Module (3.8.0)"