Files
runner-images/images/macos/provision/core/openjdk.sh
T

70 lines
2.5 KiB
Bash
Raw Normal View History

#!/bin/bash -e -o pipefail
2020-09-10 14:34:08 +03:00
source ~/utils/utils.sh
createEnvironmentVariable() {
local JAVA_VERSION=$1
2023-08-03 10:42:41 +02:00
local DEFAULT=$2
2023-08-03 10:42:41 +02:00
INSTALL_PATH_PATTERN=$(echo ${AGENT_TOOLSDIRECTORY}/Java_Temurin-Hotspot_jdk/${JAVA_VERSION}*/x64/Contents/Home/)
if [[ ${DEFAULT} == "True" ]]; then
echo "Setting up JAVA_HOME variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
2020-09-10 14:34:08 +03:00
fi
echo "Setting up JAVA_HOME_${JAVA_VERSION}_X64 variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME_${JAVA_VERSION}_X64=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
2020-09-10 14:34:08 +03:00
}
installOpenJDK() {
local JAVA_VERSION=$1
# Get link for Java binaries and Java version
2023-08-03 10:42:41 +02:00
assetUrl=$(curl -fsSL "https://api.adoptium.net/v3/assets/latest/${JAVA_VERSION}/hotspot")
asset=$(echo ${assetUrl} | jq -r '.[] | select(.binary.os=="mac" and .binary.image_type=="jdk" and .binary.architecture=="x64")')
archivePath=$(echo ${asset} | jq -r '.binary.package.link')
fullVersion=$(echo ${asset} | jq -r '.version.semver' | tr '+' '-')
2023-08-03 10:42:41 +02:00
JAVA_TOOLCACHE_PATH=${AGENT_TOOLSDIRECTORY}/Java_Temurin-Hotspot_jdk
javaToolcacheVersionPath=$JAVA_TOOLCACHE_PATH/${fullVersion}
javaToolcacheVersionArchPath=${javaToolcacheVersionPath}/x64
# Download and extract Java binaries
2023-08-03 10:42:41 +02:00
download_with_retries ${archivePath} /tmp OpenJDK-${fullVersion}.tar.gz
echo "Creating ${javaToolcacheVersionArchPath} directory"
mkdir -p ${javaToolcacheVersionArchPath}
2023-08-03 10:42:41 +02:00
tar -xf /tmp/OpenJDK-${fullVersion}.tar.gz -C ${javaToolcacheVersionArchPath} --strip-components=1
# Create complete file
touch ${javaToolcacheVersionPath}/x64.complete
# Create a symlink to '/Library/Java/JavaVirtualMachines'
# so '/usr/libexec/java_home' will be able to find Java
2023-08-03 10:42:41 +02:00
sudo ln -sf ${javaToolcacheVersionArchPath} /Library/Java/JavaVirtualMachines/Temurin-Hotspot-${JAVA_VERSION}.jdk
}
2020-09-10 14:34:08 +03:00
defaultVersion=$(get_toolset_value '.java.default')
2023-08-03 10:42:41 +02:00
jdkVersionsToInstall=($(get_toolset_value ".java.versions[]"))
2023-08-03 10:42:41 +02:00
for jdkVersionToInstall in ${jdkVersionsToInstall[@]}; do
installOpenJDK ${jdkVersionToInstall}
if [[ ${jdkVersionToInstall} == ${defaultVersion} ]]
then
createEnvironmentVariable ${jdkVersionToInstall} True
else
createEnvironmentVariable ${jdkVersionToInstall} False
fi
2020-09-10 14:34:08 +03:00
done
echo Installing Maven...
brew_smart_install "maven"
2020-09-10 14:34:08 +03:00
echo Installing Gradle ...
brew_smart_install "gradle"
invoke_tests "Java"