From 32a9b1e449663e913d1a12092117f22fbd975e4b Mon Sep 17 00:00:00 2001 From: Wei Ji Date: Mon, 14 Sep 2020 17:50:46 +1200 Subject: [PATCH 01/26] Update Miniconda version on Windows from 4.6.14 to latest --- images/win/Windows2016-Readme.md | 2 +- images/win/Windows2019-Readme.md | 2 +- images/win/scripts/Installers/Install-Miniconda.ps1 | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index 67117884d..d527feba4 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -26,7 +26,7 @@ - NPM 6.14.6 - Yarn 1.22.4 - pip 20.2.2 (python 3.7) -- Miniconda 4.6.14 +- Miniconda 4.8.3 - RubyGems 3.1.4 - Helm 3.3.0 - Composer 1.10.10 diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index c74d15f3b..241b4fca2 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -29,7 +29,7 @@ - NPM 6.14.6 - Yarn 1.22.4 - pip 20.2.2 (python 3.7) -- Miniconda 4.6.14 +- Miniconda 4.8.3 - RubyGems 3.1.4 - Helm 3.3.0 - Composer 1.10.10 diff --git a/images/win/scripts/Installers/Install-Miniconda.ps1 b/images/win/scripts/Installers/Install-Miniconda.ps1 index 6f716b509..a3b09e68a 100644 --- a/images/win/scripts/Installers/Install-Miniconda.ps1 +++ b/images/win/scripts/Installers/Install-Miniconda.ps1 @@ -7,10 +7,8 @@ Import-Module -Name ImageHelpers -Force $CondaDestination = "C:\Miniconda" -# Lock to Miniconda 4.6 until we do the work to run `conda init` for the vsts user -# Then we can go back to installing the latest Miniconda -# $url = "https://repo.continuum.io/miniconda/Miniconda3-latest-Windows-x86_64.exe" -$InstallerName = "Miniconda3-4.6.14-Windows-x86_64.exe" +# Install the latest Miniconda +$InstallerName = "Miniconda3-latest-Windows-x86_64.exe" $InstallerUrl = "https://repo.continuum.io/miniconda/${InstallerName}" $ArgumentList = ("/S", "/AddToPath=0", "/RegisterPython=0", "/D=$CondaDestination") From 7f9c626315ead3564f7749fea204a2691d0f466a Mon Sep 17 00:00:00 2001 From: Wei Ji Date: Mon, 14 Sep 2020 18:00:07 +1200 Subject: [PATCH 02/26] Revert Miniconda version change in Windows*-Readme.md --- images/win/Windows2016-Readme.md | 2 +- images/win/Windows2019-Readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index d527feba4..67117884d 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -26,7 +26,7 @@ - NPM 6.14.6 - Yarn 1.22.4 - pip 20.2.2 (python 3.7) -- Miniconda 4.8.3 +- Miniconda 4.6.14 - RubyGems 3.1.4 - Helm 3.3.0 - Composer 1.10.10 diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index 241b4fca2..c74d15f3b 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -29,7 +29,7 @@ - NPM 6.14.6 - Yarn 1.22.4 - pip 20.2.2 (python 3.7) -- Miniconda 4.8.3 +- Miniconda 4.6.14 - RubyGems 3.1.4 - Helm 3.3.0 - Composer 1.10.10 From 5fc40a670aeca38d7eef6022c0c2ddf02fefac05 Mon Sep 17 00:00:00 2001 From: Drew Skwiers-Koballa Date: Fri, 25 Sep 2020 14:25:08 -0700 Subject: [PATCH 03/26] update dacfx to 18.6 --- images/win/scripts/Installers/Install-DACFx.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-DACFx.ps1 b/images/win/scripts/Installers/Install-DACFx.ps1 index fb50af0d9..01c1c47f4 100644 --- a/images/win/scripts/Installers/Install-DACFx.ps1 +++ b/images/win/scripts/Installers/Install-DACFx.ps1 @@ -6,7 +6,7 @@ Import-Module -Name ImageHelpers -Force $InstallerName = "DacFramework.msi" -$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2134206" +$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2143544" Install-Binary -Url $InstallerUrl -Name $InstallerName From d7fcfc59799708fa1808d0c8e6e0fdab00e9ef72 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Tue, 29 Sep 2020 18:19:26 +0300 Subject: [PATCH 04/26] install dynamic for macOS --- .../macos/provision/core/android-toolsets.sh | 38 ++++++++++++------- .../SoftwareReport.Android.psm1 | 5 +++ images/macos/tests/Android.Tests.ps1 | 17 ++++++--- images/macos/toolsets/toolset-10.13.json | 8 +--- images/macos/toolsets/toolset-10.14.json | 8 +--- images/macos/toolsets/toolset-10.15.json | 16 +++----- images/macos/toolsets/toolset-11.0.json | 12 ++---- 7 files changed, 56 insertions(+), 48 deletions(-) diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh index a3b8aa97f..3fb0e2f97 100755 --- a/images/macos/provision/core/android-toolsets.sh +++ b/images/macos/provision/core/android-toolsets.sh @@ -1,8 +1,25 @@ #!/bin/bash -e source ~/utils/utils.sh -ANDROID_PLATFORM_LIST=($(get_toolset_value '.android."platform-list"[]')) -ANDROID_BUILD_TOOLS=($(get_toolset_value '.android."build-tools"[]')) +function install_android_packages { + minimumVersion=$( echo "$1" | sed 's/\.//g' ) + shift + toolsArr=("$@") + + for item in ${toolsArr[@]} + do + version=$(echo "${item##*[-;]}" | sed 's/\.//g') + echo "version is $version" + if (( $version >= $minimumVersion )) + then + echo "Start installing $item" + echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager $item + fi + done +} + +ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version')) +ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version')) ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]')) ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]')) @@ -47,18 +64,13 @@ echo y | $SDKMANAGER "cmake;3.6.4111459" echo "Installing latest ndk..." echo y | $SDKMANAGER "ndk-bundle" +platforms=$(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g") +platformsArr=(${platforms}) +install_android_packages $ANDROID_PLATFORM_LIST "${platformsArr[@]}" -for platform_name in "${ANDROID_PLATFORM_LIST[@]}" -do - echo "Installing platform $platform_name ..." - echo y | $SDKMANAGER "platforms;$platform_name" -done - -for build_tools_version in "${ANDROID_BUILD_TOOLS[@]}" -do - echo "Installing build tools $build_tools_version ..." - echo y | $SDKMANAGER "build-tools;$build_tools_version" -done +buildTools=$(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "build-tools;" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g") +buildToolsArr=(${buildTools}) +install_android_packages $ANDROID_BUILD_TOOL "${buildToolsArr[@]}" for extra_name in "${ANDROID_EXTRA_LIST[@]}" do diff --git a/images/macos/software-report/SoftwareReport.Android.psm1 b/images/macos/software-report/SoftwareReport.Android.psm1 index 75f1d9f86..ca4fcc208 100644 --- a/images/macos/software-report/SoftwareReport.Android.psm1 +++ b/images/macos/software-report/SoftwareReport.Android.psm1 @@ -28,6 +28,11 @@ function Get-AndroidInstalledPackages { return $androidInstalledPackages } +function Get-AndroidPackages { + $androidSDKManagerPath = Get-AndroidSDKManagerPath + $androidPackages = & $androidSDKManagerPath --list --verbose + return $androidPackages +} function Build-AndroidTable { Write-Host "Build-AndroidTable" diff --git a/images/macos/tests/Android.Tests.ps1 b/images/macos/tests/Android.Tests.ps1 index a7420b23e..da905e8cb 100644 --- a/images/macos/tests/Android.Tests.ps1 +++ b/images/macos/tests/Android.Tests.ps1 @@ -5,6 +5,9 @@ $os = Get-OSVersion Describe "Android" { $androidNdkToolchains = @("mips64el-linux-android-4.9", "mipsel-linux-android-4.9") + $androidSdkManagerPackages = Get-AndroidPackages + [int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version" + [version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version" $androidPackages = @( "tools", @@ -12,8 +15,12 @@ Describe "Android" { "tools/proguard", "ndk-bundle", "cmake", - (Get-ToolsetValue "android.platform-list" | ForEach-Object { "platforms/${_}" }), - (Get-ToolsetValue "android.build-tools" | ForEach-Object { "build-tools/${_}" }), + ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") } | + Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique | + ForEach-Object { "platforms/${_}" }), + ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") } | + Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique | + ForEach-Object { "build-tools/${_}" }), (Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }), (Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" }) ) | ForEach-Object { $_ } @@ -26,7 +33,7 @@ Describe "Android" { [Parameter(Mandatory=$true)] [string]$PackageName ) - + # Convert 'm2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1' -> # 'm2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1' $PackageName = $PackageName.Replace(";", "/") @@ -62,14 +69,14 @@ Describe "Android" { $rawContent = Get-Content $ndkBundlePath -Raw $rawContent | Should -BeLikeExactly "*Revision = 21.*" } - + It "Android NDK version r18b is installed" { $ndk18BundlePath = Join-Path $ANDROID_SDK_DIR "ndk" "18.1.5063045" "source.properties" $rawContent = Get-Content $ndk18BundlePath -Raw $rawContent | Should -BeLikeExactly "*Revision = 18.*" } } - + It "HAXM is installed" { $haxmPath = Join-Path $ANDROID_SDK_DIR "extras" "intel" "Hardware_Accelerated_Execution_Manager" "silent_install.sh" "$haxmPath -v" | Should -ReturnZeroExitCode diff --git a/images/macos/toolsets/toolset-10.13.json b/images/macos/toolsets/toolset-10.13.json index fdb14d084..6c12251b8 100644 --- a/images/macos/toolsets/toolset-10.13.json +++ b/images/macos/toolsets/toolset-10.13.json @@ -170,12 +170,8 @@ ] }, "android": { - "platform-list": [ - "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15" - ], - "build-tools": [ - "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0" - ], + "platform_min_version": "15", + "build_tools_min_version": "17.0.0", "extra-list": [ "android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2" ], diff --git a/images/macos/toolsets/toolset-10.14.json b/images/macos/toolsets/toolset-10.14.json index e868f7699..2cf67d719 100644 --- a/images/macos/toolsets/toolset-10.14.json +++ b/images/macos/toolsets/toolset-10.14.json @@ -191,12 +191,8 @@ ] }, "android": { - "platform-list": [ - "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15" - ], - "build-tools": [ - "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0" - ], + "platform_min_version": "15", + "build_tools_min_version": "17.0.0", "extra-list": [ "android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2" ], diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index 8497a7100..d56d91777 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -26,28 +26,28 @@ "mono":"6.12", "ios": "14.0", "mac": "6.20", - "android": "11.0" + "android": "11.0" }, { "symlink": "6_12_0", "mono":"6.12", "ios": "13.20", "mac": "6.20", - "android": "11.0" + "android": "11.0" }, { "symlink": "6_10_0", "mono":"6.10", "ios": "13.18", "mac": "6.18", - "android": "10.3" + "android": "10.3" }, { "symlink": "6_8_1", "mono":"6.8", "ios": "13.16", "mac": "6.16", - "android": "10.2" + "android": "10.2" }, { "symlink": "6_8_0", @@ -100,12 +100,8 @@ ] }, "android": { - "platform-list": [ - "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24" - ], - "build-tools": [ - "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0" - ], + "platform_min_version": "24", + "build_tools_min_version": "24.0.0", "extra-list": [ "android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2" ], diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json index 725da2188..b50f03828 100644 --- a/images/macos/toolsets/toolset-11.0.json +++ b/images/macos/toolsets/toolset-11.0.json @@ -26,14 +26,14 @@ "mono":"6.12", "ios": "14.0", "mac": "6.20", - "android": "11.0" + "android": "11.0" }, { "symlink": "6_12_0", "mono":"6.12", "ios": "13.20", "mac": "6.20", - "android": "11.0" + "android": "11.0" } ] }, @@ -44,12 +44,8 @@ ] }, "android": { - "platform-list": [ - "android-30", "android-29", "android-28", "android-27" - ], - "build-tools": [ - "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0" - ], + "platform_min_version": "27", + "build_tools_min_version": "27.0.0", "extra-list": [ "android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager" ], From 28b4f38d98339e4a4c5d06a0ea079edb1956c01a Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Wed, 30 Sep 2020 11:56:42 +0300 Subject: [PATCH 05/26] fix pass variable --- images/macos/provision/core/android-toolsets.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh index 3fb0e2f97..f44b33f1f 100755 --- a/images/macos/provision/core/android-toolsets.sh +++ b/images/macos/provision/core/android-toolsets.sh @@ -9,7 +9,6 @@ function install_android_packages { for item in ${toolsArr[@]} do version=$(echo "${item##*[-;]}" | sed 's/\.//g') - echo "version is $version" if (( $version >= $minimumVersion )) then echo "Start installing $item" @@ -66,7 +65,7 @@ echo "Installing latest ndk..." echo y | $SDKMANAGER "ndk-bundle" platforms=$(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g") platformsArr=(${platforms}) -install_android_packages $ANDROID_PLATFORM_LIST "${platformsArr[@]}" +install_android_packages $ANDROID_PLATFORM "${platformsArr[@]}" buildTools=$(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "build-tools;" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g") buildToolsArr=(${buildTools}) From c4a0c6a8eab7e9d5cdb7dc10c3cb0d825f789ae8 Mon Sep 17 00:00:00 2001 From: Drew Skwiers-Koballa Date: Wed, 30 Sep 2020 13:47:59 -0700 Subject: [PATCH 06/26] adds dacfx to win tools report --- images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 index 85c73c151..cf5c7b0b7 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 @@ -260,3 +260,9 @@ function Get-AZDSVersion { $azdsVersion = $(azds --version) | Select-String "(\d+\.\d+\.\d+.\d+)" return "Azure Dev Spaces CLI $azdsVersion" } + +function Get-DacFxVersion { + cd "C:\Program Files\Microsoft SQL Server\150\DAC\bin\" + $dacfxversion = (./sqlpackage.exe /version) + return "DacFx $dacfxversion" +} \ No newline at end of file From bae2994912d49b28e39e26d24b09bc0380cbecda Mon Sep 17 00:00:00 2001 From: Drew Skwiers-Koballa Date: Thu, 1 Oct 2020 07:55:23 -0700 Subject: [PATCH 07/26] adding function to actual report --- images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 index 28a07dce9..efc773546 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -119,6 +119,7 @@ $markdown += New-MDList -Style Unordered -Lines @( (Get-AWSSessionManagerVersion), (Get-AlibabaCLIVersion), (Get-CloudFoundryVersion), + (Get-DacFxVersion), (Get-HubVersion), (Get-GHVersion) ) From 156764e42be145592912ed81feae3abdfda7acb6 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Mon, 5 Oct 2020 10:57:58 +0300 Subject: [PATCH 08/26] add functions --- .../macos/provision/core/android-toolsets.sh | 28 +++++++++++-------- images/macos/provision/utils/utils.sh | 5 ++++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh index f44b33f1f..969d2e320 100755 --- a/images/macos/provision/core/android-toolsets.sh +++ b/images/macos/provision/core/android-toolsets.sh @@ -1,22 +1,24 @@ #!/bin/bash -e source ~/utils/utils.sh -function install_android_packages { - minimumVersion=$( echo "$1" | sed 's/\.//g' ) +function filter_components_by_version { + minimumVersion=$1 shift toolsArr=("$@") for item in ${toolsArr[@]} do - version=$(echo "${item##*[-;]}" | sed 's/\.//g') - if (( $version >= $minimumVersion )) + # take the last argument after spliting string by ';'' and '-'' + version=$(echo "${item##*[-;]}") + if verlte $minimumVersion $version then - echo "Start installing $item" - echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager $item + components+=($item) fi done } +components=() + ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version')) ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version')) ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]')) @@ -63,13 +65,15 @@ echo y | $SDKMANAGER "cmake;3.6.4111459" echo "Installing latest ndk..." echo y | $SDKMANAGER "ndk-bundle" -platforms=$(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g") -platformsArr=(${platforms}) -install_android_packages $ANDROID_PLATFORM "${platformsArr[@]}" -buildTools=$(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "build-tools;" | sed -E "s/[[:space:]]+//g" | sed -E "s/\|.*//g") -buildToolsArr=(${buildTools}) -install_android_packages $ANDROID_BUILD_TOOL "${buildToolsArr[@]}" +availablePlatforms=($(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1)) +filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}" + +allBuildTools=($(${ANDROID_HOME}/tools/bin/sdkmanager --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u)) +availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/}) +filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}" + +echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager ${components[@]} for extra_name in "${ANDROID_EXTRA_LIST[@]}" do diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh index 6a924e03d..85881c7e3 100755 --- a/images/macos/provision/utils/utils.sh +++ b/images/macos/provision/utils/utils.sh @@ -91,4 +91,9 @@ get_latest_xcode_from_toolset() { get_default_xcode_from_toolset() { echo $(get_toolset_value '.xcode.default') +} + +verlte() { + sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1) + [ "$1" = "$sortedVersion" ] } \ No newline at end of file From 1e8fd7a1087da3426c0fbebcb03753f7bcbe7770 Mon Sep 17 00:00:00 2001 From: Drew Skwiers-Koballa Date: Mon, 5 Oct 2020 08:11:58 -0700 Subject: [PATCH 09/26] moves dacfx to database tools in report --- images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 index 65727f0ad..bcc74048d 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -117,7 +117,6 @@ $markdown += New-MDList -Style Unordered -Lines @( (Get-AWSSessionManagerVersion), (Get-AlibabaCLIVersion), (Get-CloudFoundryVersion), - (Get-DacFxVersion), (Get-HubVersion), (Get-GHVersion) ) @@ -168,6 +167,7 @@ $markdown += New-MDNewLine $markdown += New-MDHeader "Database tools" -Level 3 $markdown += New-MDList -Style Unordered -Lines @( (Get-AzCosmosDBEmulatorVersion), + (Get-DacFxVersion), (Get-SQLPSVersion), (Get-MySQLVersion) ) From cde29c1bc61bc9336f7810b3e81a22907369f097 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Tue, 6 Oct 2020 10:27:47 +0300 Subject: [PATCH 10/26] fix add import --- images/macos/tests/Android.Tests.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/images/macos/tests/Android.Tests.ps1 b/images/macos/tests/Android.Tests.ps1 index da905e8cb..7c96429ba 100644 --- a/images/macos/tests/Android.Tests.ps1 +++ b/images/macos/tests/Android.Tests.ps1 @@ -1,5 +1,6 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1" Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1" +Import-Module "$PSScriptRoot/../software-report/SoftwareReport.Android.psm1" $os = Get-OSVersion From b6b4f9f36cad535aff5afef945cfe48f574ece63 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Tue, 6 Oct 2020 10:29:26 +0300 Subject: [PATCH 11/26] fix function for taking all platforms --- images/macos/provision/core/android-toolsets.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh index 969d2e320..093a133ce 100755 --- a/images/macos/provision/core/android-toolsets.sh +++ b/images/macos/provision/core/android-toolsets.sh @@ -66,7 +66,7 @@ echo y | $SDKMANAGER "cmake;3.6.4111459" echo "Installing latest ndk..." echo y | $SDKMANAGER "ndk-bundle" -availablePlatforms=($(${ANDROID_HOME}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1)) +availablePlatforms=($(${ANDROID_HOME}/tools/bin/sdkmanager --list | grep "platforms;android-" | cut -d"|" -f 1 | sort -u)) filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}" allBuildTools=($(${ANDROID_HOME}/tools/bin/sdkmanager --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u)) From b4a20707d8535473fcb2b9992d870a8a6192b440 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Tue, 6 Oct 2020 17:06:58 +0300 Subject: [PATCH 12/26] add 3.9.0 for windows --- images/win/toolsets/toolset-2016.json | 6 ++++-- images/win/toolsets/toolset-2019.json | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index 5e0b23c6b..fef0a3fcb 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -10,7 +10,8 @@ "3.5.*", "3.6.*", "3.7.*", - "3.8.*" + "3.8.*", + "3.9.*" ], "default": "3.7.*" }, @@ -24,7 +25,8 @@ "3.5.*", "3.6.*", "3.7.*", - "3.8.*" + "3.8.*", + "3.9.*" ] }, { diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index bf1d0dff6..c76c9701b 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -10,7 +10,8 @@ "3.5.*", "3.6.*", "3.7.*", - "3.8.*" + "3.8.*", + "3.9.*" ], "default": "3.7.*" }, @@ -24,7 +25,8 @@ "3.5.*", "3.6.*", "3.7.*", - "3.8.*" + "3.8.*", + "3.9.*" ] }, { From 0a2873ae032e3171fb47bd0a643c3219526cf8c2 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Wed, 7 Oct 2020 00:19:13 +0300 Subject: [PATCH 13/26] fixing tests --- images/macos/tests/Android.Tests.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/images/macos/tests/Android.Tests.ps1 b/images/macos/tests/Android.Tests.ps1 index 7c96429ba..d7ef2ce07 100644 --- a/images/macos/tests/Android.Tests.ps1 +++ b/images/macos/tests/Android.Tests.ps1 @@ -16,11 +16,11 @@ Describe "Android" { "tools/proguard", "ndk-bundle", "cmake", - ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") } | + (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' | Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique | ForEach-Object { "platforms/${_}" }), - ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") } | - Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique | + (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' | + Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique | ForEach-Object { "build-tools/${_}" }), (Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }), (Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" }) From be156d1ec46df6d8d959833cfd219f8e7e4afa88 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Thu, 8 Oct 2020 13:20:08 +0300 Subject: [PATCH 14/26] change to seperate variables --- images/macos/tests/Android.Tests.ps1 | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/images/macos/tests/Android.Tests.ps1 b/images/macos/tests/Android.Tests.ps1 index d7ef2ce07..c14a02c5e 100644 --- a/images/macos/tests/Android.Tests.ps1 +++ b/images/macos/tests/Android.Tests.ps1 @@ -10,18 +10,22 @@ Describe "Android" { [int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version" [version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version" + $platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' | + Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique | + ForEach-Object { "platforms/${_}" }) + + $buildTools = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' | + Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique | + ForEach-Object { "build-tools/${_}" }) + $androidPackages = @( "tools", "platform-tools", "tools/proguard", "ndk-bundle", "cmake", - (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' | - Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique | - ForEach-Object { "platforms/${_}" }), - (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' | - Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique | - ForEach-Object { "build-tools/${_}" }), + $platforms, + $buildTools, (Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }), (Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" }) ) | ForEach-Object { $_ } From 63f0f08a9ae39734bff09fc70daa0cefc5d78fd3 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Sat, 10 Oct 2020 00:27:53 +0700 Subject: [PATCH 15/26] added choco upgrade chocolatey --- images/win/post-generation/VSConfiguration.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/images/win/post-generation/VSConfiguration.ps1 b/images/win/post-generation/VSConfiguration.ps1 index 0ff9d7bfb..3561e6d11 100644 --- a/images/win/post-generation/VSConfiguration.ps1 +++ b/images/win/post-generation/VSConfiguration.ps1 @@ -1,4 +1,7 @@ $vsInstallRoot = Get-VisualStudioPath $devEnvPath = "$vsInstallRoot\Common7\IDE\devenv.exe" -cmd.exe /c "`"$devEnvPath`" /updateconfiguration" \ No newline at end of file +cmd.exe /c "`"$devEnvPath`" /updateconfiguration" + +# Step to avoid initial delay for choco scripts +choco upgrade chocolatey \ No newline at end of file From f655897714b85514c426a9459384241f2d1b12a5 Mon Sep 17 00:00:00 2001 From: Drew Skwiers-Koballa Date: Fri, 9 Oct 2020 10:49:45 -0700 Subject: [PATCH 16/26] update to rerun checks --- images/win/scripts/Installers/Install-DACFx.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-DACFx.ps1 b/images/win/scripts/Installers/Install-DACFx.ps1 index 32d617f5a..a59466d71 100644 --- a/images/win/scripts/Installers/Install-DACFx.ps1 +++ b/images/win/scripts/Installers/Install-DACFx.ps1 @@ -1,6 +1,6 @@ #################################################################################### ## File: Install-DACFx.ps1 -## Desc: Install SQL ServerĀ® Data-Tier Application Framework (DACFx) for Windows +## Desc: Install SQL ServerĀ® Data-Tier Application Framework (DacFx) for Windows #################################################################################### $InstallerName = "DacFramework.msi" From d129c5563d9cd0fa2584ae49008a8feaf68a6500 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Mon, 12 Oct 2020 11:29:00 +0300 Subject: [PATCH 17/26] Fix pipx version --- .../linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 index f45496638..14d4a18e6 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -249,5 +249,7 @@ function Get-AptPackages { function Get-PipxVersion { $result = (Get-CommandResult "pipx --version").Output - return "Pipx $result" + $result -match "(?\d+\.\d+\.\d+\.?\d*)" | Out-Null + $pipxVersion = $Matches.Version + return "Pipx $pipxVersion" } \ No newline at end of file From 553c24e1246985bfba0385583ef45d44efa4ecb7 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 12 Oct 2020 11:46:40 +0300 Subject: [PATCH 18/26] fix bazelisk version output --- images/macos/software-report/SoftwareReport.Generator.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/software-report/SoftwareReport.Generator.ps1 b/images/macos/software-report/SoftwareReport.Generator.ps1 index aaf4f6446..7818ba97e 100644 --- a/images/macos/software-report/SoftwareReport.Generator.ps1 +++ b/images/macos/software-report/SoftwareReport.Generator.ps1 @@ -141,7 +141,7 @@ $aria2Version = Run-Command "aria2c --version" | Select-Object -First 1 | Take-P $azcopyVersion = Run-Command "azcopy --version" | Take-Part -Part 2 $zstdVersion = Run-Command "zstd --version" | Take-Part -Part 1 -Delimiter "v" | Take-Part -Part 0 -Delimiter "," $bazelVersion = Run-Command "bazel --version" | Take-Part -Part 0 -Delimiter "-" -$bazeliskVersion = Run-Command "bazelisk version" | Select-String "Bazelisk version:" | Take-Part -Part 1 -Delimiter ":" +$bazeliskVersion = Run-Command "brew list bazelisk --versions" $packerVersion = Run-Command "packer --version" $helmVersion = Run-Command "helm version --short" $mongo = Run-Command "mongo --version" | Select-String "MongoDB shell version" | Take-Part -Part 3 From 1d4f281899a55fdf4481ac3f84f76e6c6e110e91 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Wed, 7 Oct 2020 13:49:40 +0500 Subject: [PATCH 19/26] Add -e to .sh scripts --- images/linux/scripts/base/limits.sh | 2 +- images/linux/scripts/base/reboot.sh | 4 ++-- images/linux/scripts/installers/7-zip.sh | 3 +-- images/linux/scripts/installers/aliyun-cli.sh | 3 +-- images/linux/scripts/installers/android.sh | 4 +--- images/linux/scripts/installers/ansible.sh | 2 +- images/linux/scripts/installers/aws-sam-cli.sh | 3 +-- images/linux/scripts/installers/aws.sh | 2 +- images/linux/scripts/installers/azcopy.sh | 3 +-- images/linux/scripts/installers/azpowershell.sh | 2 +- images/linux/scripts/installers/azure-cli.sh | 3 +-- images/linux/scripts/installers/azure-devops-cli.sh | 3 +-- images/linux/scripts/installers/basic.sh | 4 +--- images/linux/scripts/installers/bazel.sh | 3 +-- images/linux/scripts/installers/build-essential.sh | 3 +-- images/linux/scripts/installers/clang.sh | 3 +-- images/linux/scripts/installers/cleanup.sh | 4 ++-- images/linux/scripts/installers/cmake.sh | 3 +-- images/linux/scripts/installers/codeql-bundle.sh | 2 +- images/linux/scripts/installers/complete-snap-setup.sh | 2 +- images/linux/scripts/installers/configure-environment.sh | 4 +++- images/linux/scripts/installers/containers.sh | 3 +-- images/linux/scripts/installers/docker-compose.sh | 3 +-- images/linux/scripts/installers/docker-moby.sh | 3 +-- images/linux/scripts/installers/dotnetcore-sdk.sh | 5 +---- images/linux/scripts/installers/dpkg-config.sh | 2 +- images/linux/scripts/installers/erlang.sh | 3 +-- images/linux/scripts/installers/example.sh | 3 +-- images/linux/scripts/installers/firefox.sh | 3 +-- images/linux/scripts/installers/gcc.sh | 4 +--- images/linux/scripts/installers/gfortran.sh | 3 +-- images/linux/scripts/installers/git.sh | 3 +-- images/linux/scripts/installers/github-cli.sh | 3 +-- images/linux/scripts/installers/google-chrome.sh | 3 +-- images/linux/scripts/installers/google-cloud-sdk.sh | 3 +-- images/linux/scripts/installers/haskell.sh | 2 +- images/linux/scripts/installers/heroku.sh | 3 +-- images/linux/scripts/installers/hhvm.sh | 2 +- images/linux/scripts/installers/homebrew-validate.sh | 2 +- images/linux/scripts/installers/homebrew.sh | 2 +- images/linux/scripts/installers/hosted-tool-cache.sh | 6 +----- images/linux/scripts/installers/image-magick.sh | 3 +-- images/linux/scripts/installers/java-tools.sh | 4 +--- images/linux/scripts/installers/julia.sh | 3 +-- images/linux/scripts/installers/kind.sh | 3 +-- images/linux/scripts/installers/kubernetes-tools.sh | 3 +-- images/linux/scripts/installers/leiningen.sh | 5 +---- images/linux/scripts/installers/mercurial.sh | 2 +- images/linux/scripts/installers/miniconda.sh | 3 +-- images/linux/scripts/installers/mongodb.sh | 2 +- images/linux/scripts/installers/mono.sh | 3 +-- images/linux/scripts/installers/mysql.sh | 4 +--- images/linux/scripts/installers/netlify.sh | 3 +-- images/linux/scripts/installers/nodejs.sh | 3 +-- images/linux/scripts/installers/nvm.sh | 3 +-- images/linux/scripts/installers/oc.sh | 3 +-- images/linux/scripts/installers/oras-cli.sh | 2 +- images/linux/scripts/installers/packer.sh | 3 +-- images/linux/scripts/installers/phantomjs.sh | 4 +--- images/linux/scripts/installers/php.sh | 4 +--- images/linux/scripts/installers/pollinate.sh | 3 +-- images/linux/scripts/installers/post-deployment.sh | 2 +- images/linux/scripts/installers/postgresql.sh | 5 ++--- images/linux/scripts/installers/powershellcore.sh | 2 +- images/linux/scripts/installers/preimagedata.sh | 4 ++-- images/linux/scripts/installers/pulumi.sh | 2 +- images/linux/scripts/installers/pypy.sh | 6 ++---- images/linux/scripts/installers/python.sh | 2 +- images/linux/scripts/installers/r.sh | 2 +- images/linux/scripts/installers/rndgenerator.sh | 3 +-- images/linux/scripts/installers/ruby.sh | 3 +-- images/linux/scripts/installers/rust.sh | 2 +- images/linux/scripts/installers/sbt.sh | 3 +-- images/linux/scripts/installers/selenium.sh | 3 +-- images/linux/scripts/installers/sphinx.sh | 3 +-- images/linux/scripts/installers/subversion.sh | 3 +-- images/linux/scripts/installers/swift.sh | 6 +++--- images/linux/scripts/installers/swig.sh | 3 +-- images/linux/scripts/installers/terraform.sh | 3 +-- images/linux/scripts/installers/test-toolcache.sh | 5 +---- images/linux/scripts/installers/validate-disk-space.sh | 4 ++-- images/linux/scripts/installers/vcpkg.sh | 2 +- images/linux/scripts/installers/vercel.sh | 2 +- 83 files changed, 93 insertions(+), 163 deletions(-) diff --git a/images/linux/scripts/base/limits.sh b/images/linux/scripts/base/limits.sh index e3c43e336..24041bc99 100644 --- a/images/linux/scripts/base/limits.sh +++ b/images/linux/scripts/base/limits.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e echo '* soft nofile 65536' >> /etc/security/limits.conf echo '* hard nofile 65536' >> /etc/security/limits.conf diff --git a/images/linux/scripts/base/reboot.sh b/images/linux/scripts/base/reboot.sh index 23969fe80..d1bdf7eeb 100644 --- a/images/linux/scripts/base/reboot.sh +++ b/images/linux/scripts/base/reboot.sh @@ -1,8 +1,8 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: reboot.sh ## Desc: Reboot VM ################################################################################ echo "Reboot VM" -sudo reboot \ No newline at end of file +sudo reboot diff --git a/images/linux/scripts/installers/7-zip.sh b/images/linux/scripts/installers/7-zip.sh index 4b753de53..0fa61bb29 100644 --- a/images/linux/scripts/installers/7-zip.sh +++ b/images/linux/scripts/installers/7-zip.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: 7-zip.sh ## Desc: Installs 7-zip ################################################################################ - # Install 7-Zip apt-get update -y apt-get install -y p7zip p7zip-full p7zip-rar diff --git a/images/linux/scripts/installers/aliyun-cli.sh b/images/linux/scripts/installers/aliyun-cli.sh index af45bd07c..56a29e1eb 100644 --- a/images/linux/scripts/installers/aliyun-cli.sh +++ b/images/linux/scripts/installers/aliyun-cli.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: aliyun-cli.sh ## Desc: Installs Alibaba Cloud CLI ################################################################################ - # Install Alibaba Cloud CLI URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux"))') wget -P /tmp $URL diff --git a/images/linux/scripts/installers/android.sh b/images/linux/scripts/installers/android.sh index 90d2013ab..0f28d9c8e 100644 --- a/images/linux/scripts/installers/android.sh +++ b/images/linux/scripts/installers/android.sh @@ -1,11 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: android.sh ## Desc: Installs Android SDK ################################################################################ -set -e - # Source the helpers for use with the script source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/install.sh diff --git a/images/linux/scripts/installers/ansible.sh b/images/linux/scripts/installers/ansible.sh index 9f41af7cb..0f123bbd9 100644 --- a/images/linux/scripts/installers/ansible.sh +++ b/images/linux/scripts/installers/ansible.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: ansible.sh ## Desc: Installs Ansible diff --git a/images/linux/scripts/installers/aws-sam-cli.sh b/images/linux/scripts/installers/aws-sam-cli.sh index ac56144b3..f75c3649b 100644 --- a/images/linux/scripts/installers/aws-sam-cli.sh +++ b/images/linux/scripts/installers/aws-sam-cli.sh @@ -1,11 +1,10 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: aws-sam-cli.sh ## Desc: Installs AWS SAM CLI ## Requires Python >=3.6, must be run as non-root user after toolset installation ################################################################################ - # Download latest aws sam cli sources TarballUrl=$(curl -s https://api.github.com/repos/aws/aws-sam-cli/releases/latest | jq -r '.tarball_url') TarballPath="/tmp/aws-sam-cli.tar.gz" diff --git a/images/linux/scripts/installers/aws.sh b/images/linux/scripts/installers/aws.sh index b2ab32fa1..0a34f1749 100644 --- a/images/linux/scripts/installers/aws.sh +++ b/images/linux/scripts/installers/aws.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: aws.sh ## Desc: Installs the AWS CLI diff --git a/images/linux/scripts/installers/azcopy.sh b/images/linux/scripts/installers/azcopy.sh index 9b57d2680..2d46bef95 100644 --- a/images/linux/scripts/installers/azcopy.sh +++ b/images/linux/scripts/installers/azcopy.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: azcopy.sh ## Desc: Installs AzCopy ################################################################################ - # Install AzCopy7 wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64 tar -xf azcopy.tar.gz diff --git a/images/linux/scripts/installers/azpowershell.sh b/images/linux/scripts/installers/azpowershell.sh index a4a159865..a8488af7f 100644 --- a/images/linux/scripts/installers/azpowershell.sh +++ b/images/linux/scripts/installers/azpowershell.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: azpowershell.sh ## Desc: Installed Azure PowerShell diff --git a/images/linux/scripts/installers/azure-cli.sh b/images/linux/scripts/installers/azure-cli.sh index a33ee2f64..f51e870b1 100644 --- a/images/linux/scripts/installers/azure-cli.sh +++ b/images/linux/scripts/installers/azure-cli.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: azure-cli.sh ## Desc: Installed Azure CLI (az) ################################################################################ - # Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash diff --git a/images/linux/scripts/installers/azure-devops-cli.sh b/images/linux/scripts/installers/azure-devops-cli.sh index d39761be6..2bedb19f7 100644 --- a/images/linux/scripts/installers/azure-devops-cli.sh +++ b/images/linux/scripts/installers/azure-devops-cli.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: azure-devops-cli.sh ## Desc: Installed Azure DevOps CLI (az devops) ################################################################################ - # AZURE_EXTENSION_DIR shell variable defines where modules are installed # https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview export AZURE_EXTENSION_DIR=/opt/az/azcliextensions diff --git a/images/linux/scripts/installers/basic.sh b/images/linux/scripts/installers/basic.sh index b8f3e10f6..df9aae08f 100644 --- a/images/linux/scripts/installers/basic.sh +++ b/images/linux/scripts/installers/basic.sh @@ -1,11 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: basic.sh ## Desc: Installs basic command line utilities and dev packages ################################################################################ -set -e - toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json" common_packages=$(jq -r ".apt.common_packages[]" $toolset) cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset) diff --git a/images/linux/scripts/installers/bazel.sh b/images/linux/scripts/installers/bazel.sh index 2735df10c..8a7c6bcb0 100644 --- a/images/linux/scripts/installers/bazel.sh +++ b/images/linux/scripts/installers/bazel.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: bazel.sh ## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel) ################################################################################ - # Install bazel curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list diff --git a/images/linux/scripts/installers/build-essential.sh b/images/linux/scripts/installers/build-essential.sh index af711a1e9..e2c25290d 100644 --- a/images/linux/scripts/installers/build-essential.sh +++ b/images/linux/scripts/installers/build-essential.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: build-essential.sh ## Desc: Installs build-essential package ################################################################################ - source $HELPER_SCRIPTS/install.sh PACKAGE=build-essential diff --git a/images/linux/scripts/installers/clang.sh b/images/linux/scripts/installers/clang.sh index 4a3424fd4..e7261f0a1 100644 --- a/images/linux/scripts/installers/clang.sh +++ b/images/linux/scripts/installers/clang.sh @@ -1,9 +1,8 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: clang.sh ## Desc: Installs Clang compiler ################################################################################ -set -e # Source the helpers for use with the script source $HELPER_SCRIPTS/os.sh diff --git a/images/linux/scripts/installers/cleanup.sh b/images/linux/scripts/installers/cleanup.sh index 387a22402..32a083f9f 100644 --- a/images/linux/scripts/installers/cleanup.sh +++ b/images/linux/scripts/installers/cleanup.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e # before cleanup before=$(df / -Pm | awk 'NR==2{print $4}') @@ -27,4 +27,4 @@ after=$(df / -Pm | awk 'NR==2{print $4}') # display size echo "Before: $before MB" echo "After : $after MB" - echo "Delta : $(($after-$before)) MB" \ No newline at end of file + echo "Delta : $(($after-$before)) MB" diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh index 2dbf4cf54..3e51f02f4 100644 --- a/images/linux/scripts/installers/cmake.sh +++ b/images/linux/scripts/installers/cmake.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: cmake.sh ## Desc: Installs CMake ################################################################################ - # Test to see if the software in question is already installed, if not install it echo "Checking to see if the installer script has already been run" if command -v cmake; then diff --git a/images/linux/scripts/installers/codeql-bundle.sh b/images/linux/scripts/installers/codeql-bundle.sh index 9de8a5e41..8d1ed80fa 100644 --- a/images/linux/scripts/installers/codeql-bundle.sh +++ b/images/linux/scripts/installers/codeql-bundle.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: codeql-bundle.sh ## Desc: Install the CodeQL CLI Bundle to the toolcache. diff --git a/images/linux/scripts/installers/complete-snap-setup.sh b/images/linux/scripts/installers/complete-snap-setup.sh index 51e631546..09cd8edd5 100644 --- a/images/linux/scripts/installers/complete-snap-setup.sh +++ b/images/linux/scripts/installers/complete-snap-setup.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: snap-environment.sh ## Desc: Update /etc/environment to include /snap/bin in PATH diff --git a/images/linux/scripts/installers/configure-environment.sh b/images/linux/scripts/installers/configure-environment.sh index fbac4275e..97d3c6068 100644 --- a/images/linux/scripts/installers/configure-environment.sh +++ b/images/linux/scripts/installers/configure-environment.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e + #Set ImageVersion and ImageOS env variables echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment echo ImageOS=$IMAGE_OS | tee -a /etc/environment @@ -22,4 +24,4 @@ chmod -R 777 $AGENT_TOOLSDIRECTORY # https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html # https://www.suse.com/support/kb/doc/?id=000016692 -echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf \ No newline at end of file +echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf diff --git a/images/linux/scripts/installers/containers.sh b/images/linux/scripts/installers/containers.sh index a44d73fd7..682cdd131 100644 --- a/images/linux/scripts/installers/containers.sh +++ b/images/linux/scripts/installers/containers.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: containers.sh ## Desc: Installs container tools: podman, buildah and skopeo onto the image ################################################################################ - source /etc/os-release sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key diff --git a/images/linux/scripts/installers/docker-compose.sh b/images/linux/scripts/installers/docker-compose.sh index d2698d5c0..0fa74fc12 100644 --- a/images/linux/scripts/installers/docker-compose.sh +++ b/images/linux/scripts/installers/docker-compose.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: docker-compose.sh ## Desc: Installs Docker Compose ################################################################################ - URL=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.assets[].browser_download_url | select(contains("docker-compose-Linux-x86_64"))' | head -1) # Install latest docker-compose from releases diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index 9ae7f8c86..964fbc92c 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -1,9 +1,8 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: docker-moby.sh ## Desc: Installs docker onto the image ################################################################################ -set -e # Source the helpers for use with the script source $HELPER_SCRIPTS/install.sh diff --git a/images/linux/scripts/installers/dotnetcore-sdk.sh b/images/linux/scripts/installers/dotnetcore-sdk.sh index ee0a95b89..ff966cd28 100644 --- a/images/linux/scripts/installers/dotnetcore-sdk.sh +++ b/images/linux/scripts/installers/dotnetcore-sdk.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: dotnetcore-sdk.sh ## Desc: Installs .NET Core SDK @@ -25,7 +25,6 @@ mksamples() sample=$2 mkdir "$sdk" cd "$sdk" || exit - set -e dotnet help dotnet new globaljson --sdk-version "$sdk" dotnet new "$sample" @@ -36,8 +35,6 @@ mksamples() rm -rf "$sdk" } -set -e - # Disable telemetry export DOTNET_CLI_TELEMETRY_OPTOUT=1 diff --git a/images/linux/scripts/installers/dpkg-config.sh b/images/linux/scripts/installers/dpkg-config.sh index 67b200ed8..d8523b345 100644 --- a/images/linux/scripts/installers/dpkg-config.sh +++ b/images/linux/scripts/installers/dpkg-config.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e # This is the anti-frontend. It never interacts with you at all, # and makes the default answers be used for all questions. It diff --git a/images/linux/scripts/installers/erlang.sh b/images/linux/scripts/installers/erlang.sh index aa94e3a2b..c8ec5a1bc 100644 --- a/images/linux/scripts/installers/erlang.sh +++ b/images/linux/scripts/installers/erlang.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: erlang.sh ## Desc: Installs erlang ################################################################################ - source_list=/etc/apt/sources.list.d/eslerlang.list # Install Erlang diff --git a/images/linux/scripts/installers/example.sh b/images/linux/scripts/installers/example.sh index 895de5d35..58e71b06e 100644 --- a/images/linux/scripts/installers/example.sh +++ b/images/linux/scripts/installers/example.sh @@ -1,11 +1,10 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: example.sh ## Desc: This is an example script that can be copied to add a new software ## installer to the image ################################################################################ - # Test to see if the software in question is already installed, if not install it echo "Checking to see if the installer script has already been run" if [ -z $EXAMPLE_VAR ]; then diff --git a/images/linux/scripts/installers/firefox.sh b/images/linux/scripts/installers/firefox.sh index 3287bf168..a2cd8521f 100644 --- a/images/linux/scripts/installers/firefox.sh +++ b/images/linux/scripts/installers/firefox.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: firefox.sh ## Desc: Installs Firefox ################################################################################ - # Install Firefox apt-get install -y firefox diff --git a/images/linux/scripts/installers/gcc.sh b/images/linux/scripts/installers/gcc.sh index b59eae7f6..3b696e9ff 100644 --- a/images/linux/scripts/installers/gcc.sh +++ b/images/linux/scripts/installers/gcc.sh @@ -1,11 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: gcc.sh ## Desc: Installs GNU C++ ################################################################################ -set -e - # Source the helpers for use with the script source $HELPER_SCRIPTS/os.sh diff --git a/images/linux/scripts/installers/gfortran.sh b/images/linux/scripts/installers/gfortran.sh index c37fccf27..dc49cb446 100644 --- a/images/linux/scripts/installers/gfortran.sh +++ b/images/linux/scripts/installers/gfortran.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: gfortran.sh ## Desc: Installs GNU Fortran ################################################################################ - function InstallFortran { version=$1 diff --git a/images/linux/scripts/installers/git.sh b/images/linux/scripts/installers/git.sh index 331e5f813..0ba2611ff 100644 --- a/images/linux/scripts/installers/git.sh +++ b/images/linux/scripts/installers/git.sh @@ -1,9 +1,8 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: git.sh ## Desc: Installs Git ################################################################################ -set -e # Source the helpers for use with the script source "$HELPER_SCRIPTS"/install.sh diff --git a/images/linux/scripts/installers/github-cli.sh b/images/linux/scripts/installers/github-cli.sh index c9bec1fc6..d4eccb125 100644 --- a/images/linux/scripts/installers/github-cli.sh +++ b/images/linux/scripts/installers/github-cli.sh @@ -1,11 +1,10 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: github-cli.sh ## Desc: Installs GitHub CLI ## Must be run as non-root user after homebrew ################################################################################ - # Install GitHub CLI url=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r '.assets[].browser_download_url|select(contains("linux") and contains("amd64") and contains(".deb"))') wget $url diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh index a6ace2f38..44316ece5 100644 --- a/images/linux/scripts/installers/google-chrome.sh +++ b/images/linux/scripts/installers/google-chrome.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: google-chrome.sh ## Desc: Installs google-chrome and chromedriver ################################################################################ - LSB_RELEASE=$(lsb_release -rs) wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - diff --git a/images/linux/scripts/installers/google-cloud-sdk.sh b/images/linux/scripts/installers/google-cloud-sdk.sh index 147d8d4fb..a6d8227c8 100644 --- a/images/linux/scripts/installers/google-cloud-sdk.sh +++ b/images/linux/scripts/installers/google-cloud-sdk.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: google-cloud-sdk.sh ## Desc: Installs the Google Cloud SDK ################################################################################ - # Install the Google Cloud SDK echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - diff --git a/images/linux/scripts/installers/haskell.sh b/images/linux/scripts/installers/haskell.sh index b8bfa5efe..9b351cc31 100644 --- a/images/linux/scripts/installers/haskell.sh +++ b/images/linux/scripts/installers/haskell.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: haskell.sh ## Desc: Installs Haskell diff --git a/images/linux/scripts/installers/heroku.sh b/images/linux/scripts/installers/heroku.sh index c4c0e588c..86d537869 100644 --- a/images/linux/scripts/installers/heroku.sh +++ b/images/linux/scripts/installers/heroku.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: heroku.sh ## Desc: Installs Heroku CLI ################################################################################ - # Install Heroku CLI curl https://cli-assets.heroku.com/install-ubuntu.sh | sh diff --git a/images/linux/scripts/installers/hhvm.sh b/images/linux/scripts/installers/hhvm.sh index 3010db873..e44f4b3a5 100644 --- a/images/linux/scripts/installers/hhvm.sh +++ b/images/linux/scripts/installers/hhvm.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: hhvm.sh ## Desc: Installs hhvm diff --git a/images/linux/scripts/installers/homebrew-validate.sh b/images/linux/scripts/installers/homebrew-validate.sh index 88d61f946..0806838d7 100644 --- a/images/linux/scripts/installers/homebrew-validate.sh +++ b/images/linux/scripts/installers/homebrew-validate.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: homebrew-validate.sh ## Desc: Validate the Homebrew can run after reboot without extra configuring diff --git a/images/linux/scripts/installers/homebrew.sh b/images/linux/scripts/installers/homebrew.sh index 370d9d09d..865923f25 100644 --- a/images/linux/scripts/installers/homebrew.sh +++ b/images/linux/scripts/installers/homebrew.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: homebrew.sh ## Desc: Installs the Homebrew on Linux diff --git a/images/linux/scripts/installers/hosted-tool-cache.sh b/images/linux/scripts/installers/hosted-tool-cache.sh index d40a4922a..23c09be8d 100644 --- a/images/linux/scripts/installers/hosted-tool-cache.sh +++ b/images/linux/scripts/installers/hosted-tool-cache.sh @@ -1,13 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: hosted-tool-cache.sh ## Desc: Downloads and installs hosted tools cache ################################################################################ - -# Fail out if any setups fail -set -e - TOOLCACHE_REGISTRY="npm.pkg.github.com" echo "Configure npm to use github package registry for '@actions' scope" diff --git a/images/linux/scripts/installers/image-magick.sh b/images/linux/scripts/installers/image-magick.sh index e01c933a7..daf0d62b8 100644 --- a/images/linux/scripts/installers/image-magick.sh +++ b/images/linux/scripts/installers/image-magick.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: image-magick.sh ## Desc: Installs ImageMagick ################################################################################ - # Install ImageMagick apt-get install -y --no-install-recommends --fix-missing \ imagemagick \ diff --git a/images/linux/scripts/installers/java-tools.sh b/images/linux/scripts/installers/java-tools.sh index 46aa8b285..ea95a56ba 100644 --- a/images/linux/scripts/installers/java-tools.sh +++ b/images/linux/scripts/installers/java-tools.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: java-tools.sh ## Desc: Installs Java and related tooling (Ant, Gradle, Maven) @@ -6,8 +6,6 @@ source $HELPER_SCRIPTS/os.sh -set -e - function javaTool { if [[ "$2" =~ ([1]{0,1}.)?$DEFAULT_JDK_VERSION.* ]]; then echo "$1 $2 is equal to default one $DEFAULT_JDK_VERSION" diff --git a/images/linux/scripts/installers/julia.sh b/images/linux/scripts/installers/julia.sh index 079890a19..cd0ee0ed9 100644 --- a/images/linux/scripts/installers/julia.sh +++ b/images/linux/scripts/installers/julia.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: julia.sh ## Desc: Installs Julia, and adds Julia to the path ################################################################################ - # This function fetches the latest Julia release from the GitHub API # Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c function GetLatestJuliaRelease () { diff --git a/images/linux/scripts/installers/kind.sh b/images/linux/scripts/installers/kind.sh index 3a312a2e3..419f4e60f 100644 --- a/images/linux/scripts/installers/kind.sh +++ b/images/linux/scripts/installers/kind.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: kind.sh ## Desc: Installs kind ################################################################################ - # Install KIND URL=$(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kind-linux-amd64"))') curl -L -o /usr/local/bin/kind $URL diff --git a/images/linux/scripts/installers/kubernetes-tools.sh b/images/linux/scripts/installers/kubernetes-tools.sh index a25cb0f26..e74515ea2 100644 --- a/images/linux/scripts/installers/kubernetes-tools.sh +++ b/images/linux/scripts/installers/kubernetes-tools.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: kubernetes-tools.sh ## Desc: Installs kubectl, helm, kustomize ################################################################################ - ## Install kubectl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - touch /etc/apt/sources.list.d/kubernetes.list diff --git a/images/linux/scripts/installers/leiningen.sh b/images/linux/scripts/installers/leiningen.sh index 56079a34d..059dfdb56 100644 --- a/images/linux/scripts/installers/leiningen.sh +++ b/images/linux/scripts/installers/leiningen.sh @@ -1,12 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: leiningen.sh ## Desc: Installs Leiningen ################################################################################ - -set -e - LEIN_BIN=/usr/local/bin/lein curl -s https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > $LEIN_BIN chmod 0755 $LEIN_BIN diff --git a/images/linux/scripts/installers/mercurial.sh b/images/linux/scripts/installers/mercurial.sh index ad972d74f..4c3493d8c 100644 --- a/images/linux/scripts/installers/mercurial.sh +++ b/images/linux/scripts/installers/mercurial.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: mercurial.sh ## Desc: Installs Mercurial diff --git a/images/linux/scripts/installers/miniconda.sh b/images/linux/scripts/installers/miniconda.sh index 29eebd0ca..3dae1e1bb 100644 --- a/images/linux/scripts/installers/miniconda.sh +++ b/images/linux/scripts/installers/miniconda.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: miniconda.sh ## Desc: Installs miniconda ################################################################################ - # Install Miniconda curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \ && chmod +x miniconda.sh \ diff --git a/images/linux/scripts/installers/mongodb.sh b/images/linux/scripts/installers/mongodb.sh index 2d012c61f..5fd1b36a0 100644 --- a/images/linux/scripts/installers/mongodb.sh +++ b/images/linux/scripts/installers/mongodb.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: homebrew.sh ## Desc: Installs Mongo DB diff --git a/images/linux/scripts/installers/mono.sh b/images/linux/scripts/installers/mono.sh index 9e4968f36..bdce62484 100644 --- a/images/linux/scripts/installers/mono.sh +++ b/images/linux/scripts/installers/mono.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: cmake.sh ## Desc: Installs Mono ################################################################################ - LSB_CODENAME=$(lsb_release -cs) # Test to see if the software in question is already installed, if not install it diff --git a/images/linux/scripts/installers/mysql.sh b/images/linux/scripts/installers/mysql.sh index 24cb5cf26..9abb97931 100644 --- a/images/linux/scripts/installers/mysql.sh +++ b/images/linux/scripts/installers/mysql.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: mysql.sh ## Desc: Installs MySQL Client ################################################################################ - export ACCEPT_EULA=Y if isUbuntu16 || isUbuntu18 ; then @@ -44,7 +43,6 @@ if ! command -v mysql; then exit 1 fi -set -e mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot set +e diff --git a/images/linux/scripts/installers/netlify.sh b/images/linux/scripts/installers/netlify.sh index b737d4759..42121ab7e 100644 --- a/images/linux/scripts/installers/netlify.sh +++ b/images/linux/scripts/installers/netlify.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: netlify.sh ## Desc: Installs the Netlify CLI ################################################################################ - # Install the Netlify CLI npm i -g netlify-cli diff --git a/images/linux/scripts/installers/nodejs.sh b/images/linux/scripts/installers/nodejs.sh index 378236a8b..e0bb6981c 100644 --- a/images/linux/scripts/installers/nodejs.sh +++ b/images/linux/scripts/installers/nodejs.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: nodejs.sh ## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt) ################################################################################ - # Install LTS Node.js and related build tools curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny - ~/n/bin/n lts diff --git a/images/linux/scripts/installers/nvm.sh b/images/linux/scripts/installers/nvm.sh index 619eade84..b0d995138 100644 --- a/images/linux/scripts/installers/nvm.sh +++ b/images/linux/scripts/installers/nvm.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: nvm.sh ## Desc: Installs Nvm ################################################################################ - export NVM_DIR="/etc/skel/.nvm" mkdir $NVM_DIR VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name') diff --git a/images/linux/scripts/installers/oc.sh b/images/linux/scripts/installers/oc.sh index 88894e3f5..2310f33f0 100644 --- a/images/linux/scripts/installers/oc.sh +++ b/images/linux/scripts/installers/oc.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: oc.sh ## Desc: Installs the OC CLI ################################################################################ - # Install the oc CLI curl "https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz" > oc.tar.gz tar xvzf oc.tar.gz diff --git a/images/linux/scripts/installers/oras-cli.sh b/images/linux/scripts/installers/oras-cli.sh index e615d25de..3c18865b2 100644 --- a/images/linux/scripts/installers/oras-cli.sh +++ b/images/linux/scripts/installers/oras-cli.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: oras-cli.sh ## Desc: Installs ORAS CLI diff --git a/images/linux/scripts/installers/packer.sh b/images/linux/scripts/installers/packer.sh index 25897a780..b45a87ac9 100644 --- a/images/linux/scripts/installers/packer.sh +++ b/images/linux/scripts/installers/packer.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: packer.sh ## Desc: Installs packer ################################################################################ - # Install Packer PACKER_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r .current_version) curl -LO "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip" diff --git a/images/linux/scripts/installers/phantomjs.sh b/images/linux/scripts/installers/phantomjs.sh index 093056db2..a774b2d0a 100644 --- a/images/linux/scripts/installers/phantomjs.sh +++ b/images/linux/scripts/installers/phantomjs.sh @@ -1,11 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: phantomjs.sh ## Desc: Installs PhantomJS ################################################################################ -set -e - # Install PhantomJS apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev PHANTOM_JS=phantomjs-2.1.1-linux-x86_64 diff --git a/images/linux/scripts/installers/php.sh b/images/linux/scripts/installers/php.sh index 35afa4a4f..b8e2b8ed1 100644 --- a/images/linux/scripts/installers/php.sh +++ b/images/linux/scripts/installers/php.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: php.sh ## Desc: Installs php @@ -8,8 +8,6 @@ source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/os.sh -set -e - # add repository apt-add-repository ppa:ondrej/php -y apt-get update diff --git a/images/linux/scripts/installers/pollinate.sh b/images/linux/scripts/installers/pollinate.sh index bdb2ce36c..fe2350d94 100644 --- a/images/linux/scripts/installers/pollinate.sh +++ b/images/linux/scripts/installers/pollinate.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: pollinate.sh ## Desc: Installs Pollinate ################################################################################ - # Install Pollinate apt-get install -y --no-install-recommends pollinate diff --git a/images/linux/scripts/installers/post-deployment.sh b/images/linux/scripts/installers/post-deployment.sh index 2864dae4f..821294137 100644 --- a/images/linux/scripts/installers/post-deployment.sh +++ b/images/linux/scripts/installers/post-deployment.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: post-deployment.sh ## Desc: Post deployment actions diff --git a/images/linux/scripts/installers/postgresql.sh b/images/linux/scripts/installers/postgresql.sh index ae5ffbb25..4c652fdf2 100644 --- a/images/linux/scripts/installers/postgresql.sh +++ b/images/linux/scripts/installers/postgresql.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: postgresql.sh ## Desc: Installs Postgresql ################################################################################ - #Preparing repo for PostgreSQL 12. wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list @@ -25,4 +24,4 @@ pg_isready # Disable postgresql.service systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service -systemctl disable postgresql.service \ No newline at end of file +systemctl disable postgresql.service diff --git a/images/linux/scripts/installers/powershellcore.sh b/images/linux/scripts/installers/powershellcore.sh index e0c19ba7c..0ac52072d 100644 --- a/images/linux/scripts/installers/powershellcore.sh +++ b/images/linux/scripts/installers/powershellcore.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: powershellcore.sh ## Desc: Installs powershellcore diff --git a/images/linux/scripts/installers/preimagedata.sh b/images/linux/scripts/installers/preimagedata.sh index 26be3bfa4..d9f7b22fe 100644 --- a/images/linux/scripts/installers/preimagedata.sh +++ b/images/linux/scripts/installers/preimagedata.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e imagedata_file=$IMAGEDATA_FILE image_version=$IMAGE_VERSION @@ -29,4 +29,4 @@ cat < $imagedata_file "detail": "Environment: ${image_label}\nVersion: ${image_version}\nIncluded Software: ${software_url}" } ] -EOF \ No newline at end of file +EOF diff --git a/images/linux/scripts/installers/pulumi.sh b/images/linux/scripts/installers/pulumi.sh index bfdad2d13..444a3e7f3 100644 --- a/images/linux/scripts/installers/pulumi.sh +++ b/images/linux/scripts/installers/pulumi.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: pulumi.sh ## Desc: Installs Pulumi diff --git a/images/linux/scripts/installers/pypy.sh b/images/linux/scripts/installers/pypy.sh index cc707a3e4..99dab0a77 100644 --- a/images/linux/scripts/installers/pypy.sh +++ b/images/linux/scripts/installers/pypy.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: pypy.sh ## Desc: Installs PyPy @@ -76,8 +76,6 @@ pypyVersions="$(cat /tmp/pypyUrls.html | grep 'linux64' | awk -v uri="$uri" -F'> toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json" toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset) -# Fail out if any setups fail -set -e for toolsetVersion in $toolsetVersions; do latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1) @@ -90,4 +88,4 @@ for toolsetVersion in $toolsetVersions; do InstallPyPy $latestMajorPyPyVersion done -chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy" \ No newline at end of file +chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy" diff --git a/images/linux/scripts/installers/python.sh b/images/linux/scripts/installers/python.sh index 62dc8d359..8993e1d3a 100644 --- a/images/linux/scripts/installers/python.sh +++ b/images/linux/scripts/installers/python.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: python.sh ## Desc: Installs Python 2/3 diff --git a/images/linux/scripts/installers/r.sh b/images/linux/scripts/installers/r.sh index cca86e1bb..86ad96bd6 100644 --- a/images/linux/scripts/installers/r.sh +++ b/images/linux/scripts/installers/r.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e # Source the helpers for use with the script source $HELPER_SCRIPTS/os.sh diff --git a/images/linux/scripts/installers/rndgenerator.sh b/images/linux/scripts/installers/rndgenerator.sh index cdb78edf1..98f1dbaa1 100644 --- a/images/linux/scripts/installers/rndgenerator.sh +++ b/images/linux/scripts/installers/rndgenerator.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: rndgenerator.sh ## Desc: Install random number generator ################################################################################ - # Install haveged apt-get -y install haveged diff --git a/images/linux/scripts/installers/ruby.sh b/images/linux/scripts/installers/ruby.sh index 8be6d0fa9..bf2c757d9 100644 --- a/images/linux/scripts/installers/ruby.sh +++ b/images/linux/scripts/installers/ruby.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: ruby.sh ## Desc: Installs Ruby requirements ################################################################################ - sudo apt-get install ruby-full sudo gem update --system diff --git a/images/linux/scripts/installers/rust.sh b/images/linux/scripts/installers/rust.sh index a211e791b..c86f4d6ad 100644 --- a/images/linux/scripts/installers/rust.sh +++ b/images/linux/scripts/installers/rust.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: rust.sh ## Desc: Installs Rust diff --git a/images/linux/scripts/installers/sbt.sh b/images/linux/scripts/installers/sbt.sh index 166dc18b5..a43115083 100644 --- a/images/linux/scripts/installers/sbt.sh +++ b/images/linux/scripts/installers/sbt.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: scala.sh ## Desc: Installs sbt ################################################################################ - # Install sbt # https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list diff --git a/images/linux/scripts/installers/selenium.sh b/images/linux/scripts/installers/selenium.sh index d9b5e2794..d662fa009 100644 --- a/images/linux/scripts/installers/selenium.sh +++ b/images/linux/scripts/installers/selenium.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: selenium.sh ## Desc: Installs selenium server ################################################################################ - # Determine latest selenium standalone server version SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest SELENIUM_VERSION=$(curl $SELENIUM_LATEST_VERSION_URL | jq '.name' | tr -d '"' | cut -d ' ' -f 2) diff --git a/images/linux/scripts/installers/sphinx.sh b/images/linux/scripts/installers/sphinx.sh index 425bb7fd3..2ef22f46d 100644 --- a/images/linux/scripts/installers/sphinx.sh +++ b/images/linux/scripts/installers/sphinx.sh @@ -1,9 +1,8 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: sphinx.sh ## Desc: Installs Sphinx ################################################################################ - # Install Sphinx apt-get install -y sphinxsearch diff --git a/images/linux/scripts/installers/subversion.sh b/images/linux/scripts/installers/subversion.sh index 3f51d46a0..77b2d0276 100644 --- a/images/linux/scripts/installers/subversion.sh +++ b/images/linux/scripts/installers/subversion.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: subversion.sh ## Desc: Installs Subversion client ################################################################################ - # Install Subversion apt-get install -y --no-install-recommends subversion diff --git a/images/linux/scripts/installers/swift.sh b/images/linux/scripts/installers/swift.sh index 318d3973f..73c8fd297 100644 --- a/images/linux/scripts/installers/swift.sh +++ b/images/linux/scripts/installers/swift.sh @@ -1,15 +1,15 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: swift.sh ## Desc: Installs Swift ################################################################################ - # Install image_label="$(lsb_release -rs)" -swift_version=$(curl -s https://swift.org/download/ | grep -m1 "id=\"swift-" | awk -F"[ <]" '{print $4}') +swift_version=$(curl -s -L -N https://swift.org/download|awk -F"[ <]" '/id="swift-/ {print $4; exit}') wget -P /tmp https://swift.org/builds/swift-$swift_version-release/ubuntu${image_label//./}/swift-$swift_version-RELEASE/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz + tar xzf /tmp/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz mv swift-$swift_version-RELEASE-ubuntu$image_label /usr/share/swift diff --git a/images/linux/scripts/installers/swig.sh b/images/linux/scripts/installers/swig.sh index 7972e8827..b2e5a202e 100644 --- a/images/linux/scripts/installers/swig.sh +++ b/images/linux/scripts/installers/swig.sh @@ -1,5 +1,4 @@ -#!/bin/bash - +#!/bin/bash -e # Install Swig sudo apt-get install -y swig diff --git a/images/linux/scripts/installers/terraform.sh b/images/linux/scripts/installers/terraform.sh index 4c7e6e762..90c25c65a 100644 --- a/images/linux/scripts/installers/terraform.sh +++ b/images/linux/scripts/installers/terraform.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: terraform.sh ## Desc: Installs terraform ################################################################################ - # Install Terraform TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version) curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index 455ddec09..84d93446e 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: test-toolcache.sh ## Desc: Test Python and Ruby versions in tools cache @@ -51,9 +51,6 @@ Test_Hostedtoolcache_Tool() { fi } -# Fail out if any tests fail -set -e - # define dictionary for key_alias and its values declare -A TOOLCACHE_KEY_VALUE diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh index 49863064e..c81b9fa75 100644 --- a/images/linux/scripts/installers/validate-disk-space.sh +++ b/images/linux/scripts/installers/validate-disk-space.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: validate-disk-space.sh ## Desc: Validate free disk space @@ -17,4 +17,4 @@ fi if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then echo "Not enough disk space on the image (minimum available space: $minimumFreeSpaceMB MB)" exit 1 -fi \ No newline at end of file +fi diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/linux/scripts/installers/vcpkg.sh index ba7cd01cf..e2d9688ce 100644 --- a/images/linux/scripts/installers/vcpkg.sh +++ b/images/linux/scripts/installers/vcpkg.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: vcpkg.sh ## Desc: Installs vcpkg diff --git a/images/linux/scripts/installers/vercel.sh b/images/linux/scripts/installers/vercel.sh index 4e0d41ae6..7f48d7c28 100644 --- a/images/linux/scripts/installers/vercel.sh +++ b/images/linux/scripts/installers/vercel.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: vercel.sh ## Desc: Installs the Vercel CLI From 69cfebc5fca7e2c4a64bd6163025b6212cb542a3 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Mon, 12 Oct 2020 21:42:27 +0700 Subject: [PATCH 20/26] added separate file for choco script. --- images/win/post-generation/ChocoFirstStart.ps1 | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 images/win/post-generation/ChocoFirstStart.ps1 diff --git a/images/win/post-generation/ChocoFirstStart.ps1 b/images/win/post-generation/ChocoFirstStart.ps1 new file mode 100644 index 000000000..3f8e7c8df --- /dev/null +++ b/images/win/post-generation/ChocoFirstStart.ps1 @@ -0,0 +1,2 @@ +# Step to avoid initial delay for choco scripts +choco upgrade chocolatey \ No newline at end of file From ed38c86cbb585a410e6c74d9d423752db2a47756 Mon Sep 17 00:00:00 2001 From: Leonid Lapshin Date: Mon, 12 Oct 2020 17:44:31 +0300 Subject: [PATCH 21/26] Move linux provision scripts to virtual-environments (#1714) * add linux-related scripts from MMS provisioner * removed EOL * removed Ubuntu condition * moved PATH checking to cleanup section * add clarification for cgroups names * names alignment * removed memory-configuration and agent specific scripts * renamed folder to psot-generation, added template instructions * moved key import to git installation * moved PATH check to post-deployment instead of cleanup script * add scripts * output tests file * add startup logic * add powershell module for furute helpers * removed unused modules * copy to tmp folder because of permissions, copy to opt on post-generation step * removed Pester test * change post-generation location * incorrect if statement Co-authored-by: Leonid Lapshin --- images/linux/post-generation/homebrew-permissions.sh | 11 +++++++++++ images/linux/post-generation/rust-permissions.sh | 11 +++++++++++ images/linux/scripts/installers/cleanup.sh | 2 +- images/linux/scripts/installers/git.sh | 4 ++++ images/linux/scripts/installers/post-deployment.sh | 10 ++++++++++ images/linux/ubuntu1604.json | 5 +++++ images/linux/ubuntu1804.json | 5 +++++ images/linux/ubuntu2004.json | 5 +++++ 8 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 images/linux/post-generation/homebrew-permissions.sh create mode 100644 images/linux/post-generation/rust-permissions.sh diff --git a/images/linux/post-generation/homebrew-permissions.sh b/images/linux/post-generation/homebrew-permissions.sh new file mode 100644 index 000000000..1dbd043e2 --- /dev/null +++ b/images/linux/post-generation/homebrew-permissions.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Fix permissions for Homebrew +# https://github.com/actions/virtual-environments/issues/1568 +brew_folder="/home/linuxbrew/" +if [ -d "$brew_folder" ]; then + brew_folder_owner=$(ls -ld $brew_folder | awk '{print $3}') + if [ "$USER" != "$brew_folder_owner" ]; then + chown "$USER":docker -R $brew_folder + fi +fi diff --git a/images/linux/post-generation/rust-permissions.sh b/images/linux/post-generation/rust-permissions.sh new file mode 100644 index 000000000..6673686bd --- /dev/null +++ b/images/linux/post-generation/rust-permissions.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Fix permissions for the Rust folder +# https://github.com/actions/virtual-environments/issues/572 +rust_folder="/usr/share/rust" +if [ -d "$rust_folder" ]; then + rust_folder_owner=$(ls -ld $rust_folder | awk '{print $3}') + if [ "$USER" != "$rust_folder_owner" ]; then + chown "$USER":docker -R $rust_folder + fi +fi diff --git a/images/linux/scripts/installers/cleanup.sh b/images/linux/scripts/installers/cleanup.sh index 387a22402..cb6468d67 100644 --- a/images/linux/scripts/installers/cleanup.sh +++ b/images/linux/scripts/installers/cleanup.sh @@ -27,4 +27,4 @@ after=$(df / -Pm | awk 'NR==2{print $4}') # display size echo "Before: $before MB" echo "After : $after MB" - echo "Delta : $(($after-$before)) MB" \ No newline at end of file + echo "Delta : $(($after-$before)) MB" diff --git a/images/linux/scripts/installers/git.sh b/images/linux/scripts/installers/git.sh index 331e5f813..b0cdb6a36 100644 --- a/images/linux/scripts/installers/git.sh +++ b/images/linux/scripts/installers/git.sh @@ -52,3 +52,7 @@ else echo "[!] Hub CLI was not installed" exit 1 fi + +# Add well-known SSH host keys to known_hosts +ssh-keyscan -t rsa github.com >> /etc/ssh/ssh_known_hosts +ssh-keyscan -t rsa ssh.dev.azure.com >> /etc/ssh/ssh_known_hosts diff --git a/images/linux/scripts/installers/post-deployment.sh b/images/linux/scripts/installers/post-deployment.sh index 2864dae4f..f094ca51d 100644 --- a/images/linux/scripts/installers/post-deployment.sh +++ b/images/linux/scripts/installers/post-deployment.sh @@ -4,6 +4,8 @@ ## Desc: Post deployment actions ################################################################################ +mv -f /imagegeneration/post-generation /opt + # set chmod -R 777 /opt if [[ -d "/opt" ]]; then echo "chmod -R 777 /opt" @@ -14,3 +16,11 @@ fi rm -rf $HELPER_SCRIPT_FOLDER rm -rf $INSTALLER_SCRIPT_FOLDER chmod 755 $IMAGE_FOLDER + +# Check PATH +if [[ $PATH == \"*\" ]] +then + echo "ERROR: PATH contains quotes" + echo "PATH = $PATH" + exit 1 +fi diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 8a4255ec7..5e45fdedc 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -89,6 +89,11 @@ "source": "{{template_dir}}/scripts/installers", "destination": "{{user `installer_script_folder`}}" }, + { + "type": "file", + "source": "{{ template_dir }}/post-generation", + "destination": "{{user `image_folder`}}" + }, { "type": "file", "source": "{{ template_dir }}/scripts/SoftwareReport", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index daf40ce81..e6af0e41e 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -92,6 +92,11 @@ "source": "{{template_dir}}/scripts/installers", "destination": "{{user `installer_script_folder`}}" }, + { + "type": "file", + "source": "{{ template_dir }}/post-generation", + "destination": "{{user `image_folder`}}" + }, { "type": "file", "source": "{{ template_dir }}/scripts/SoftwareReport", diff --git a/images/linux/ubuntu2004.json b/images/linux/ubuntu2004.json index 740fe097f..9b4181ede 100644 --- a/images/linux/ubuntu2004.json +++ b/images/linux/ubuntu2004.json @@ -94,6 +94,11 @@ "source": "{{template_dir}}/scripts/installers", "destination": "{{user `installer_script_folder`}}" }, + { + "type": "file", + "source": "{{ template_dir }}/post-generation", + "destination": "{{user `installer_script_folder`}}" + }, { "type": "file", "source": "{{ template_dir }}/scripts/SoftwareReport", From f33118c5dc913db70d0712414e121acd803cb65e Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Mon, 12 Oct 2020 21:46:49 +0700 Subject: [PATCH 22/26] removed from old file and renamed choco. --- images/win/post-generation/Choco.ps1 | 2 ++ images/win/post-generation/VSConfiguration.ps1 | 5 +---- 2 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 images/win/post-generation/Choco.ps1 diff --git a/images/win/post-generation/Choco.ps1 b/images/win/post-generation/Choco.ps1 new file mode 100644 index 000000000..3f8e7c8df --- /dev/null +++ b/images/win/post-generation/Choco.ps1 @@ -0,0 +1,2 @@ +# Step to avoid initial delay for choco scripts +choco upgrade chocolatey \ No newline at end of file diff --git a/images/win/post-generation/VSConfiguration.ps1 b/images/win/post-generation/VSConfiguration.ps1 index 3561e6d11..0ff9d7bfb 100644 --- a/images/win/post-generation/VSConfiguration.ps1 +++ b/images/win/post-generation/VSConfiguration.ps1 @@ -1,7 +1,4 @@ $vsInstallRoot = Get-VisualStudioPath $devEnvPath = "$vsInstallRoot\Common7\IDE\devenv.exe" -cmd.exe /c "`"$devEnvPath`" /updateconfiguration" - -# Step to avoid initial delay for choco scripts -choco upgrade chocolatey \ No newline at end of file +cmd.exe /c "`"$devEnvPath`" /updateconfiguration" \ No newline at end of file From 164f12f9fcdb9a926a35201835dcff99e5c4de08 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Mon, 12 Oct 2020 21:46:57 +0700 Subject: [PATCH 23/26] removed old file --- images/win/post-generation/ChocoFirstStart.ps1 | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 images/win/post-generation/ChocoFirstStart.ps1 diff --git a/images/win/post-generation/ChocoFirstStart.ps1 b/images/win/post-generation/ChocoFirstStart.ps1 deleted file mode 100644 index 3f8e7c8df..000000000 --- a/images/win/post-generation/ChocoFirstStart.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -# Step to avoid initial delay for choco scripts -choco upgrade chocolatey \ No newline at end of file From 671d82f3f340abd611eac1c43e6b68309079ede0 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 12 Oct 2020 18:50:08 +0300 Subject: [PATCH 24/26] remove word bazelisk --- images/macos/software-report/SoftwareReport.Generator.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/software-report/SoftwareReport.Generator.ps1 b/images/macos/software-report/SoftwareReport.Generator.ps1 index 7818ba97e..9bcef14ce 100644 --- a/images/macos/software-report/SoftwareReport.Generator.ps1 +++ b/images/macos/software-report/SoftwareReport.Generator.ps1 @@ -167,7 +167,7 @@ $markdown += New-MDList -Style Unordered -NoNewLine -Lines @( "azcopy $azcopyVersion", "zstd $zstdVersion", $bazelVersion, - "bazelisk $($bazeliskVersion.Trim())", + $bazeliskVersion, "helm $helmVersion", "mongo $mongo", "mongod $mongod", From dbe01607a11cde64b995e42571d4597ec3112e22 Mon Sep 17 00:00:00 2001 From: Alena Sviridenko Date: Tue, 13 Oct 2020 13:48:58 +0300 Subject: [PATCH 25/26] fixed label case (#1802) --- .github/workflows/issue-triager.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issue-triager.yml b/.github/workflows/issue-triager.yml index c7f4b9f88..c948a620a 100644 --- a/.github/workflows/issue-triager.yml +++ b/.github/workflows/issue-triager.yml @@ -32,7 +32,7 @@ jobs: const isAnnouncement = issueLabels.data && issueLabels.data .map(label => label.name) - .includes('announcement'); + .includes('Announcement'); if (!isAnnouncement) { github.issues.addLabels({ From d8857768e947b973cc9d04951e386dcccb2428e4 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Tue, 13 Oct 2020 13:56:37 +0300 Subject: [PATCH 26/26] [macOS] Switch image generation to faster datastores (#1801) * select datastore script * add debug message * add move-vm and helpers * add error action * formatting the script * nits * add missing quotes * add synopsis --- .../azure-pipelines/image-generation.yml | 23 ++++++- images.CI/macos/destroy-vm.ps1 | 44 +++++++------ images.CI/macos/helpers.psm1 | 26 ++++++++ images.CI/macos/move-vm.ps1 | 59 +++++++++++++++++ images.CI/macos/select-datastore.ps1 | 64 +++++++++++++++++++ 5 files changed, 196 insertions(+), 20 deletions(-) create mode 100644 images.CI/macos/helpers.psm1 create mode 100644 images.CI/macos/move-vm.ps1 create mode 100644 images.CI/macos/select-datastore.ps1 diff --git a/images.CI/macos/azure-pipelines/image-generation.yml b/images.CI/macos/azure-pipelines/image-generation.yml index b70e42158..37b17b8a0 100644 --- a/images.CI/macos/azure-pipelines/image-generation.yml +++ b/images.CI/macos/azure-pipelines/image-generation.yml @@ -42,6 +42,15 @@ jobs: SourceFolder: 'images/macos/provision/log/' RemoveSourceFolder: true + - task: PowerShell@2 + displayName: 'Select datastore' + inputs: + targetType: 'filePath' + filePath: ./images.CI/macos/select-datastore.ps1 + arguments: -VIServer "$(vcenter-server-v2)" ` + -VIUserName "$(vcenter-username-v2)" ` + -VIPassword "$(vcenter-password-v2)" + - pwsh: | $SensitiveData = @( 'IP address:', @@ -54,7 +63,7 @@ jobs: -var="vcenter_password=$(vcenter-password-v2)" ` -var="vcenter_datacenter=$(vcenter-datacenter-v2)" ` -var="cluster_or_esxi_host=$(esxi-cluster-v2)" ` - -var="esxi_datastore=${{ parameters.target_datastore }}" ` + -var="esxi_datastore=$(buildDatastore)" ` -var="output_folder=$(output-folder)" ` -var="vm_username=$(vm-username)" ` -var="vm_password=$(vm-password)" ` @@ -106,6 +115,18 @@ jobs: displayName: Publish test results condition: always() + - task: PowerShell@2 + displayName: 'Move vm to cold storage' + condition: succeededOrFailed() + inputs: + targetType: 'filePath' + filePath: ./images.CI/macos/move-vm.ps1 + arguments: -VMName "${{ variables.VirtualMachineName }}" ` + -TargetDataStore "${{ parameters.target_datastore }}" ` + -VIServer "$(vcenter-server-v2)" ` + -VIUserName "$(vcenter-username-v2)" ` + -VIPassword "$(vcenter-password-v2)" + - task: PowerShell@2 displayName: 'Destroy VM (if build canceled only)' condition: eq(variables['Agent.JobStatus'], 'Canceled') diff --git a/images.CI/macos/destroy-vm.ps1 b/images.CI/macos/destroy-vm.ps1 index 0b8083703..f6ed1b1a8 100644 --- a/images.CI/macos/destroy-vm.ps1 +++ b/images.CI/macos/destroy-vm.ps1 @@ -1,3 +1,21 @@ +<# +.SYNOPSIS + +This script deletes vm from vCenter + +.PARAMETER VMName +VM name to delete (Example "macOS-10.15_20201012.4") + +.PARAMETER VIServer +vCenter address (Example "10.0.1.16") + +.PARAMETER VIUserName +vCenter username (Example "Administrator") + +.PARAMETER VIPassword +vCenter password (Example "12345678") +#> + [CmdletBinding()] param( [Parameter(Mandatory)] @@ -17,25 +35,13 @@ param( [string]$VIPassword ) -$ProgressPreference = "SilentlyContinue" -$WarningPreference = "SilentlyContinue" +# Import helpers module +Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking -# connection to a vCenter Server system -try -{ - $null = Set-PowerCLIConfiguration -Scope Session -InvalidCertificateAction Ignore -ParticipateInCEIP $false -Confirm:$false -WebOperationTimeoutSeconds 600 - $securePassword = ConvertTo-SecureString -String $VIPassword -AsPlainText -Force - $cred = New-Object System.Management.Automation.PSCredential($VIUserName, $securePassword) - $null = Connect-VIServer -Server $VIServer -Credential $cred -ErrorAction Stop - Write-Host "Connection to the vSphere server has been established" -} -catch -{ - Write-Host "##vso[task.LogIssue type=error;]Failed to connect to the vSphere server" - exit 1 -} +# Connection to a vCenter Server system +Connect-VCServer -# check vm clone status +# Check vm clone status $chainId = (Get-VIEvent -Entity $VMName).ChainId if ($chainId) { @@ -45,7 +51,7 @@ if ($chainId) try { Stop-Task -Task $task -Confirm:$false -ErrorAction Stop - Write-Host "The vm '$VMName' clone task has been cancelled" + Write-Host "The vm '$VMName' clone task has been canceled" } catch { @@ -54,7 +60,7 @@ if ($chainId) } } -# remove a vm +# Remove a vm $vm = Get-VM -Name $VMName -ErrorAction SilentlyContinue if ($vm) diff --git a/images.CI/macos/helpers.psm1 b/images.CI/macos/helpers.psm1 new file mode 100644 index 000000000..a5be3fee1 --- /dev/null +++ b/images.CI/macos/helpers.psm1 @@ -0,0 +1,26 @@ +<# +.SYNOPSIS + +Helper functions to use in images.CI scripts +#> + +Function Connect-VCServer +{ + try + { + # Preference + $global:ProgressPreference = 'SilentlyContinue' + $global:WarningPreference = 'SilentlyContinue' + # Ignore SSL + $null = Set-PowerCLIConfiguration -Scope Session -InvalidCertificateAction Ignore -ParticipateInCEIP $false -Confirm:$false -WebOperationTimeoutSeconds 600 + $securePassword = ConvertTo-SecureString -String $VIPassword -AsPlainText -Force + $cred = New-Object System.Management.Automation.PSCredential($VIUserName, $securePassword) + $null = Connect-VIServer -Server $VIServer -Credential $cred -ErrorAction Stop + Write-Host "Connection to the vSphere server has been established" + } + catch + { + Write-Host "##vso[task.LogIssue type=error;]Failed to connect to the vSphere server" + exit 1 + } +} \ No newline at end of file diff --git a/images.CI/macos/move-vm.ps1 b/images.CI/macos/move-vm.ps1 new file mode 100644 index 000000000..17e6faea3 --- /dev/null +++ b/images.CI/macos/move-vm.ps1 @@ -0,0 +1,59 @@ +<# +.SYNOPSIS + +This script migrates given VM to another datastore + +.PARAMETER VMName +VM name to migrate (Example "macOS-10.15_20201012.4") + +.PARAMETER TargetDataStore +Target datastore (Example "ds-image") + +.PARAMETER VIServer +vCenter address (Example "10.0.1.16") + +.PARAMETER VIUserName +vCenter username (Example "Administrator") + +.PARAMETER VIPassword +vCenter password (Example "12345678") +#> + +[CmdletBinding()] +param( + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VMName, + + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$TargetDataStore, + + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VIServer, + + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VIUserName, + + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VIPassword +) + +# Import helpers module +Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking + +# Connection to a vCenter Server system +Connect-VCServer + +try +{ + Get-VM $VMName | Move-VM -Datastore $TargetDataStore -ErrorAction Stop + Write-Host "VM has been moved successfully to target datastore '$TargetDataStore'" +} +catch +{ + Write-Host "##vso[task.LogIssue type=error;]Failed to move VM '$VMName' to target datastore '$TargetDataStore'" +} \ No newline at end of file diff --git a/images.CI/macos/select-datastore.ps1 b/images.CI/macos/select-datastore.ps1 new file mode 100644 index 000000000..d6477700c --- /dev/null +++ b/images.CI/macos/select-datastore.ps1 @@ -0,0 +1,64 @@ +<# +.SYNOPSIS + +This script selects local datastore based on the following rules: + +- Name starts with ds-local-Datastore +- Datastore FreespaceGB > 400 Gb +- VM count on the datastore < 2 + +.PARAMETER VIServer +vCenter address (Example "10.0.1.16") + +.PARAMETER VIUserName +vCenter username (Example "Administrator") + +.PARAMETER VIPassword +vCenter password (Example "12345678") +#> + + +[CmdletBinding()] +param( + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VIServer, + + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VIUserName, + + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VIPassword +) + +# Import helpers module +Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking + +# Connection to a vCenter Server system +Connect-VCServer + +# Get a target datastore for current deployment +# 1. Name starts with ds-local-Datastore +# 2. FreespaceGB > 400 Gb +# 3. VM count on a datastore < 2 +$templateDatastore = "ds-local-Datastore-*" +$thresholdInGb = 400 +$vmCount = 2 +$allDatastores = Get-Datastore -Name $templateDatastore | Where-Object { $_.State -eq "Available" } +$buildDatastore = $allDatastores | Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } | Where-Object { + $vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch "^\.").Count + $vmOnDatastore -lt $vmCount + } | Select-Object -ExpandProperty Name -First 1 + +if ($buildDatastore) +{ + Write-Host "Datastore selected successfully" + Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore" +} +else +{ + Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition" + exit 1 +} \ No newline at end of file