diff --git a/images/linux/scripts/helpers/os.sh b/images/linux/scripts/helpers/os.sh index 7d8b174fd..9c30c811a 100644 --- a/images/linux/scripts/helpers/os.sh +++ b/images/linux/scripts/helpers/os.sh @@ -6,12 +6,17 @@ function isUbuntu16 { - lsb_release -d|grep 'Ubuntu 16' > /dev/null + lsb_release -d | grep -q 'Ubuntu 16' } function isUbuntu18 { - lsb_release -d|grep 'Ubuntu 18' > /dev/null + lsb_release -d | grep -q 'Ubuntu 18' +} + +function isUbuntu20 +{ + lsb_release -d | grep -q 'Ubuntu 20' } function getOSVersionLabel diff --git a/images/linux/scripts/installers/2004/android.sh b/images/linux/scripts/installers/2004/android.sh index a4a94566c..4d4a32724 100644 --- a/images/linux/scripts/installers/2004/android.sh +++ b/images/linux/scripts/installers/2004/android.sh @@ -50,11 +50,6 @@ echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ "platforms;android-26" \ "platforms;android-25" \ "platforms;android-24" \ - "platforms;android-23" \ - "platforms;android-22" \ - "platforms;android-21" \ - "platforms;android-19" \ - "platforms;android-17" \ "build-tools;29.0.3" \ "build-tools;29.0.2" \ "build-tools;29.0.0" \ @@ -78,14 +73,6 @@ echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ "build-tools;24.0.2" \ "build-tools;24.0.1" \ "build-tools;24.0.0" \ - "build-tools;23.0.3" \ - "build-tools;23.0.2" \ - "build-tools;23.0.1" \ - "build-tools;22.0.1" \ - "build-tools;21.1.2" \ - "build-tools;20.0.0" \ - "build-tools;19.1.0" \ - "build-tools;17.0.0" \ "extras;android;m2repository" \ "extras;google;m2repository" \ "extras;google;google_play_services" \ @@ -114,11 +101,6 @@ DocumentInstalledItem "Android SDK Platform 27" DocumentInstalledItem "Android SDK Platform 26" DocumentInstalledItem "Android SDK Platform 25" DocumentInstalledItem "Android SDK Platform 24" -DocumentInstalledItem "Android SDK Platform 23" -DocumentInstalledItem "Android SDK Platform 22" -DocumentInstalledItem "Android SDK Platform 21" -DocumentInstalledItem "Android SDK Platform 19" -DocumentInstalledItem "Android SDK Platform 17" DocumentInstalledItem "Android SDK Patch Applier v4" DocumentInstalledItem "Android SDK Build-Tools 29.0.3" DocumentInstalledItem "Android SDK Build-Tools 29.0.2" @@ -143,12 +125,4 @@ DocumentInstalledItem "Android SDK Build-Tools 24.0.3" DocumentInstalledItem "Android SDK Build-Tools 24.0.2" DocumentInstalledItem "Android SDK Build-Tools 24.0.1" DocumentInstalledItem "Android SDK Build-Tools 24.0.0" -DocumentInstalledItem "Android SDK Build-Tools 23.0.3" -DocumentInstalledItem "Android SDK Build-Tools 23.0.2" -DocumentInstalledItem "Android SDK Build-Tools 23.0.1" -DocumentInstalledItem "Android SDK Build-Tools 22.0.1" -DocumentInstalledItem "Android SDK Build-Tools 21.1.2" -DocumentInstalledItem "Android SDK Build-Tools 20.0.0" -DocumentInstalledItem "Android SDK Build-Tools 19.1.0" -DocumentInstalledItem "Android SDK Build-Tools 17.0.0" DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)" diff --git a/images/linux/scripts/installers/dotnetcore-sdk.sh b/images/linux/scripts/installers/dotnetcore-sdk.sh index f2210e826..8416efb68 100644 --- a/images/linux/scripts/installers/dotnetcore-sdk.sh +++ b/images/linux/scripts/installers/dotnetcore-sdk.sh @@ -7,7 +7,15 @@ source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/apt.sh source $HELPER_SCRIPTS/document.sh -LATEST_DOTNET_PACKAGES=("dotnet-sdk-3.1") +if isUbuntu20 ; then + LATEST_DOTNET_PACKAGES=("dotnet-sdk-3.1") + release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json") +fi + +if isUbuntu16 || isUbuntu18 ; then + LATEST_DOTNET_PACKAGES=("dotnet-sdk-3.0" "dotnet-sdk-3.1") + release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json") +fi LSB_RELEASE=$(lsb_release -rs) @@ -44,7 +52,6 @@ for latest_package in ${LATEST_DOTNET_PACKAGES[@]}; do done # Get list of all released SDKs from channels which are not end-of-life or preview -release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json") sdks=() for release_url in ${release_urls[@]}; do echo "${release_url}" diff --git a/images/linux/scripts/installers/haskell.sh b/images/linux/scripts/installers/haskell.sh index 49b9c65f1..9f80d9867 100644 --- a/images/linux/scripts/installers/haskell.sh +++ b/images/linux/scripts/installers/haskell.sh @@ -6,7 +6,7 @@ # Source the helpers for use with the script source $HELPER_SCRIPTS/document.sh -source $HELPER_SCRIPTS/apt.sh +source $HELPER_SCRIPTS/os.sh # Install Herbert V. Riedel's PPA for managing multiple version of ghc on ubuntu. # https://launchpad.net/~hvr/+archive/ubuntu/ghc @@ -15,16 +15,42 @@ add-apt-repository -y ppa:hvr/ghc apt-get update # Install various versions of ghc and cabal -apt-get install -y \ - ghc-8.0.2 \ - ghc-8.2.2 \ - ghc-8.4.4 \ - ghc-8.6.5 \ - ghc-8.8.3 \ - ghc-8.10.1 \ - cabal-install-2.4 \ - cabal-install-3.0 \ - cabal-install-3.2 +if isUbuntu20 ; then + apt-get install -y \ + ghc-8.6.5 \ + ghc-8.8.3 \ + ghc-8.10.1 \ + cabal-install-2.4 \ + cabal-install-3.0 \ + cabal-install-3.2 + + ghcVersions="8.6.5 8.8.3 8.10.1" + cabalVersions="2.4 3.0 3.2" +fi + +if isUbuntu16 || isUbuntu18 ; then + # Install various versions of ghc and cabal + apt-get install -y \ + ghc-8.0.2 \ + ghc-8.2.2 \ + ghc-8.4.4 \ + ghc-8.6.2 \ + ghc-8.6.3 \ + ghc-8.6.4 \ + ghc-8.6.5 \ + ghc-8.8.1 \ + ghc-8.8.2 \ + ghc-8.8.3 \ + ghc-8.10.1 \ + cabal-install-2.0 \ + cabal-install-2.2 \ + cabal-install-2.4 \ + cabal-install-3.0 \ + cabal-install-3.2 + + ghcVersions="8.0.2 8.2.2 8.4.4 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3 8.10.1" + cabalVersions="2.0 2.2 2.4 3.0 3.2" +fi # Install the latest stable release of haskell stack curl -sSL https://get.haskellstack.org/ | sh @@ -32,14 +58,14 @@ curl -sSL https://get.haskellstack.org/ | sh # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" # Check all ghc versions -for version in 8.0.2 8.2.2 8.4.4 8.6.5 8.8.3 8.10.1; do +for version in $ghcVersions; do if ! command -v /opt/ghc/$version/bin/ghc; then echo "ghc $version was not installed" exit 1 fi done # Check all cabal versions -for version in 2.4 3.0 3.2; do +for version in $cabalVersions; do if ! command -v /opt/cabal/$version/bin/cabal; then echo "cabal $version was not installed" exit 1 @@ -52,10 +78,10 @@ fi # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" -for version in 2.4 3.0 3.2; do +for version in $cabalVersions; do DocumentInstalledItem "Haskell Cabal ($(/opt/cabal/$version/bin/cabal --version))" done -for version in 8.0.2 8.2.2 8.4.4 8.6.5 8.8.3 8.10.1; do +for version in $ghcVersions; do DocumentInstalledItem "GHC ($(/opt/ghc/$version/bin/ghc --version))" done DocumentInstalledItem "Haskell Stack ($(stack --version))" diff --git a/images/linux/ubuntu2004.json b/images/linux/ubuntu2004.json index 1d19f90a4..1026f6de9 100644 --- a/images/linux/ubuntu2004.json +++ b/images/linux/ubuntu2004.json @@ -25,7 +25,7 @@ "image_os": "ubuntu20", "github_feed_token": null, "go_default": "1.14", - "go_versions": "1.11 1.12 1.13 1.14" + "go_versions": "1.12 1.13 1.14" }, "sensitive-variables": ["client_secret", "github_feed_token"], "builders": [