From 589a58e707319199d9b2b199895686f1489c1a21 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Fri, 21 May 2021 15:37:15 +0300 Subject: [PATCH] [Ubuntu] Change java-tools script to retrieve the latest major Gradle version (#3385) * Change java-tools script to retrieve the latest major gradle version * Change gradle installation to use manifest json. Use download_with_retries function * Move maven version to the toolset --- images/linux/scripts/helpers/install.sh | 3 +- images/linux/scripts/installers/java-tools.sh | 35 +++++++++---------- images/linux/toolsets/toolset-1604.json | 3 +- images/linux/toolsets/toolset-1804.json | 3 +- images/linux/toolsets/toolset-2004.json | 3 +- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/images/linux/scripts/helpers/install.sh b/images/linux/scripts/helpers/install.sh index c2fbdb242..efdfac542 100644 --- a/images/linux/scripts/helpers/install.sh +++ b/images/linux/scripts/helpers/install.sh @@ -19,7 +19,7 @@ download_with_retries() { COMMAND="curl $URL -4 -sL -o '$DEST/$NAME'" fi - echo "Downloading $URL..." + echo "Downloading '$URL' to '${DEST}/${NAME}'..." i=20 while [ $i -gt 0 ]; do ((i--)) @@ -27,6 +27,7 @@ download_with_retries() { if [ $? != 0 ]; then sleep 30 else + echo "Download completed" return 0 fi done diff --git a/images/linux/scripts/installers/java-tools.sh b/images/linux/scripts/installers/java-tools.sh index 94c3252df..a78043a0f 100644 --- a/images/linux/scripts/installers/java-tools.sh +++ b/images/linux/scripts/installers/java-tools.sh @@ -3,6 +3,7 @@ ## File: java-tools.sh ## Desc: Installs Java and related tooling (Ant, Gradle, Maven) ################################################################################ + source $HELPER_SCRIPTS/install.sh source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/etc-environment.sh @@ -62,27 +63,23 @@ apt-fast install -y --no-install-recommends ant ant-optional echo "ANT_HOME=/usr/share/ant" | tee -a /etc/environment # Install Maven -curl -sL https://www-eu.apache.org/dist/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.zip -o maven.zip -unzip -qq -d /usr/share maven.zip -rm maven.zip -ln -s /usr/share/apache-maven-3.8.1/bin/mvn /usr/bin/mvn +mavenVersion=$(get_toolset_value '.java.maven') +mavenDownloadUrl="https://www-eu.apache.org/dist/maven/maven-3/${mavenVersion}/binaries/apache-maven-${mavenVersion}-bin.zip" +download_with_retries $mavenDownloadUrl "/tmp" "maven.zip" +unzip -qq -d /usr/share /tmp/maven.zip +ln -s /usr/share/apache-maven-${mavenVersion}/bin/mvn /usr/bin/mvn # Install Gradle -# This script downloads the latest HTML list of releases at https://gradle.org/releases/. -# Then, it extracts the top-most release download URL, relying on the top-most URL being for the latest release. -# The release download URL looks like this: https://services.gradle.org/distributions/gradle-5.2.1-bin.zip -# The release version is extracted from the download URL (i.e. 5.2.1). -# After all of this, the release is downloaded, extracted, a symlink is created that points to it, and GRADLE_HOME is set. -wget -qO gradleReleases.html https://gradle.org/releases/ -gradleUrl=$(grep -m 1 -o "https:\/\/services.gradle.org\/distributions\/gradle-.*-bin\.zip" gradleReleases.html | head -1) -gradleVersion=$(echo $gradleUrl | sed -nre 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p') -rm gradleReleases.html -echo "gradleUrl=$gradleUrl" -echo "gradleVersion=$gradleVersion" -curl -sL $gradleUrl -o gradleLatest.zip -unzip -qq -d /usr/share gradleLatest.zip -rm gradleLatest.zip -ln -s /usr/share/gradle-"${gradleVersion}"/bin/gradle /usr/bin/gradle +# This script founds the latest gradle release from https://services.gradle.org/versions/all +# The release is downloaded, extracted, a symlink is created that points to it, and GRADLE_HOME is set. +gradleJson=$(curl -s https://services.gradle.org/versions/all) +gradleLatestVersion=$(echo $gradleJson | jq -r '.[] | select(.version | contains("-") | not).version' | sort -V | tail -n1) +gradleDownloadUrl=$(echo $gradleJson | jq -r ".[] | select(.version==\"$gradleLatestVersion\") | .downloadUrl") +echo "gradleUrl=$gradleDownloadUrl" +echo "gradleVersion=$gradleLatestVersion" +download_with_retries $gradleDownloadUrl "/tmp" "gradleLatest.zip" +unzip -qq -d /usr/share /tmp/gradleLatest.zip +ln -s /usr/share/gradle-"${gradleLatestVersion}"/bin/gradle /usr/bin/gradle echo "GRADLE_HOME=$(find /usr/share -depth -maxdepth 1 -name "gradle*")" | tee -a /etc/environment reloadEtcEnvironment diff --git a/images/linux/toolsets/toolset-1604.json b/images/linux/toolsets/toolset-1604.json index 14e47bd55..6cc4906c5 100644 --- a/images/linux/toolsets/toolset-1604.json +++ b/images/linux/toolsets/toolset-1604.json @@ -72,7 +72,8 @@ "default": "8", "versions": [ "8", "11", "12" - ] + ], + "maven": "3.8.1" }, "android": { "platform_min_version": "23", diff --git a/images/linux/toolsets/toolset-1804.json b/images/linux/toolsets/toolset-1804.json index 0f45c6ac0..9c62b5f49 100644 --- a/images/linux/toolsets/toolset-1804.json +++ b/images/linux/toolsets/toolset-1804.json @@ -72,7 +72,8 @@ "default": "8", "versions": [ "8", "11", "12" - ] + ], + "maven": "3.8.1" }, "android": { "platform_min_version": "23", diff --git a/images/linux/toolsets/toolset-2004.json b/images/linux/toolsets/toolset-2004.json index fd6b1bf29..323b2068e 100644 --- a/images/linux/toolsets/toolset-2004.json +++ b/images/linux/toolsets/toolset-2004.json @@ -72,7 +72,8 @@ "default": "11", "versions": [ "8", "11" - ] + ], + "maven": "3.8.1" }, "android": { "platform_min_version": "27",