Skip to content

Commit

Permalink
Add useful information to 'release' file
Browse files Browse the repository at this point in the history
Signed-off-by: Austin Bailey <[email protected]>
  • Loading branch information
austin0 committed Sep 9, 2020
1 parent 0250a7d commit e3b9aaa
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 45 deletions.
115 changes: 70 additions & 45 deletions sbin/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -833,92 +833,117 @@ fixJavaHomeUnderDocker() {

addInfoToReleaseFile(){
# Extra information is added to the release file here
cd ${BUILD_CONFIG[JDK_PATH]}
cd $PRODUCT_HOME
JAVA_LOC="$PRODUCT_HOME/bin/java"
addImplementor
addBuildSHA
addBuildNumber
addFullVersion
addSemVer
addBuildOS
addJVMVariant
addJVMVersion
# OpenJ9 specific options
if [ "${BUILD_CONFIG[BUILD_VARIANT]}" == "${BUILD_VARIANT_OPENJ9}" ]; then
addHeapSize
addJ9Tag
fi
mirrorToJRE
addImageType
}

addBuildNumber(){
# If variable is populated add it to the release file
if [[ ${BUILD_CONFIG[OPENJDK_BUILD_NUMBER]} ]]; then
echo -e BUILD_NUMBER=\"${BUILD_CONFIG[OPENJDK_BUILD_NUMBER]}\" >> release
fi
}

addHeapSize(){
local jdkPath=${BUILD_CONFIG[JDK_PATH]}
if [ "${BUILD_CONFIG[OPENJDK_CORE_VERSION]}" == "${JDK8_CORE_VERSION}" ]; then
if [ -d $jdkPath/jre/lib/amd64/compressedrefs ] || [ -d $jdkPath/lib/compressedrefs ]; then
echo -e HEAP_SIZE=\"Standard\" >> release
else # Large heap has the folder /jre/lib/amd64/default or /lib/default
echo -e HEAP_SIZE=\"Large\" >> release
fi
addHeapSize(){ # Adds an identifier for heap size on OpenJ9 builds
local heapSize=""
if [[ $($JAVA_LOC -version 2>&1 | grep 'Compressed References') ]]; then
heapSize="Standard"
else
heapSize="Large"
fi
echo -e HEAP_SIZE=\"$heapSize\" >> release
}

addImplementor(){
if [ "${BUILD_CONFIG[OPENJDK_CORE_VERSION]}" == "${JDK8_CORE_VERSION}" ]; then
echo -e IMPLEMENTOR=\"AdoptOpenJDK\" >> release
echo -e IMPLEMENTOR=\"${BUILD_CONFIG[IMPLEMENTOR]}\" >> release
fi
}

addJVMVersion(){
local javaLoc="${BUILD_CONFIG[JDK_PATH]}/bin/java"
if [ "${BUILD_CONFIG[OS_KERNEL_NAME]}" == "cygwin" ]; then
javaLoc="${BUILD_CONFIG[JDK_PATH]}/bin/java.exe"
elif [ "${BUILD_CONFIG[OS_KERNEL_NAME]}" == "darwin" ]; then
javaLoc="${BUILD_CONFIG[JDK_PATH]}/Contents/Home/bin/java"
fi
local jvmVersion = $($javaLoc -XshowSettings:properties -version 2>&1 | grep 'java.vm.version' | sed 's/^.*= //')
addJVMVersion(){ # Adds the JVM version i.e. openj9-0.21.0
local jvmVersion=$($JAVA_LOC -XshowSettings:properties -version 2>&1 | grep 'java.vm.version' | sed 's/^.*= //' | tr -d '\r')
echo -e JVM_VERSION=\"$jvmVersion\" >> release
}

addFullVersion(){
echo -e FULL_VERSION=\"${BUILD_CONFIG[TAG]}\" >> release
addFullVersion(){ # Adds the full version including build number i.e. 11.0.9+5-202009040847
local fullVer=$($JAVA_LOC -XshowSettings:properties -version 2>&1 | grep 'java.runtime.version' | sed 's/^.*= //' | tr -d '\r')
echo -e FULL_VERSION=\"$fullVer\" >> release
}

addJVMVariant(){
local jvmName=""
if [ "${BUILD_CONFIG[BUILD_VARIANT]}" == "${BUILD_VARIANT_OPENJ9}" ]; then
jvmName="Openj9";
elif [ "${BUILD_CONFIG[BUILD_VARIANT]}" == "${BUILD_VARIANT_CORRETTO}" ]; then
jvmName="Corretto";
elif [ "${BUILD_CONFIG[BUILD_VARIANT]}" == "${BUILD_VARIANT_HOTSPOT}" ]; then
jvmName="Hotspot";
fi
echo -e JVM_VARIANT=\"$jvmName\" >> release
echo -e JVM_VARIANT=\"${BUILD_CONFIG[BUILD_VARIANT]^}\" >> release
}

addBuildSHA(){
addBuildSHA(){ # git SHA of the build repository i.e. openjdk-build
local buildSHA=$(git -C ${BUILD_CONFIG[WORKSPACE_DIR]} rev-parse --short HEAD)
echo -e BUILD_SOURCE=\"$buildSHA\" >> release
echo -e BUILD_SOURCE=\"git:$buildSHA\" >> release
}

addBuildOS(){
local buildOS=""
local buildVer=""
if [ "${BUILD_CONFIG[OS_KERNEL_NAME]}" == "cygwin" ]; then
buildOS=$(systeminfo | sed -n 's/^OS Name:[[:blank:]]*//p')
buildVer=$(systeminfo | sed -n 's/^OS Version:[[:blank:]]*//p')
elif [ "${BUILD_CONFIG[OS_KERNEL_NAME]}" == "darwin" ]; then
local buildOS="Unknown"
local buildVer="Unknown"
if [ "${BUILD_CONFIG[OS_KERNEL_NAME]}" == "darwin" ]; then
buildOS=$(sw_vers | sed -n 's/^ProductName:[[:blank:]]*//p')
buildVer=$(sw_vers | tail -n 2 | awk '{print $2}')
elif [ "${BUILD_CONFIG[OS_KERNEL_NAME]}" == "linux" ]; then
buildOS=$(uname -s)
buildVer=$(uname -r)
else # Fall back to java properties OS/Version info
buildOS=$($JAVA_LOC -XshowSettings:properties -version 2>&1 | grep 'os.name' | sed 's/^.*= //' | tr -d '\r')
buildVer=$($JAVA_LOC -XshowSettings:properties -version 2>&1 | grep 'os.version' | sed 's/^.*= //' | tr -d '\r')
fi
echo -e BUILD_INFO=\"OS: $buildOS Version: $buildVer\" >> release
}

addJ9Tag(){
# java.vm.version varies or for OpenJ9 depending on if it is a release build i.e. master-*gitSha* or 0.21.0
# This code makes sure that a version number is always present in the release file i.e. openj9-0.21.0
if [ ${BUILD_CONFIG[RELEASE]} = false ]; then
local j9Location="${BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[WORKING_DIR]}/${BUILD_CONFIG[OPENJDK_SOURCE_DIR]}/openj9"
# Pull the tag associated with the J9 commit being used
local j9Tag=$(git -C $j9Location describe --abbrev=0)
echo -e OPENJ9_TAG=\"$j9Tag\" >> release
fi
}

addSemVer(){ # Pulls the semantic version from the tag associated with the openjdk repo
local fullVer=$(getOpenJdkVersion)
local semVer="$fullVer"
if [ "${BUILD_CONFIG[OPENJDK_CORE_VERSION]}" == "${JDK8_CORE_VERSION}" ]; then
semVer=$(echo "$semVer" | cut -c4- | awk -F'[\-b0]+' '{print $1"+"$2}' | sed 's/u/.0./')
else
semVer=$(echo "$semVer" | cut -c5-)
fi
echo -e SEMANTIC_VERSION=\"$semVer\" >> release
}

mirrorToJRE(){
stepIntoTheWorkingDirectory

case "${BUILD_CONFIG[OS_KERNEL_NAME]}" in
"darwin")
JRE_HOME=$(ls -d ${PWD}/build/*/images/${BUILD_CONFIG[JRE_PATH]}/Contents/Home)
;;
*)
JRE_HOME=$(ls -d ${PWD}/build/*/images/${BUILD_CONFIG[JRE_PATH]})
;;
esac

cp -f $PRODUCT_HOME/release $JRE_HOME/release
}

addImageType(){
echo -e IMAGE_TYPE=\"JDK\" >> $PRODUCT_HOME/release
echo -e IMAGE_TYPE=\"JRE\" >> $JRE_HOME/release
}

################################################################################

loadConfigFromFile
Expand Down
7 changes: 7 additions & 0 deletions sbin/common/config_init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ FREETYPE_DIRECTORY
FREETYPE_FONT_BUILD_TYPE_PARAM
FREETYPE_FONT_VERSION
GRADLE_USER_HOME_DIR
IMPLEMENTOR
KEEP_CONTAINER
JDK_BOOT_DIR
JDK_PATH
Expand Down Expand Up @@ -254,6 +255,9 @@ function parseConfigurationArguments() {
"--ignore-container" | "-i" )
BUILD_CONFIG[REUSE_CONTAINER]=false;;

"--implementor" | "-I" )
BUILD_CONFIG[IMPLEMENTOR]="$1"; shift;;

"--jdk-boot-dir" | "-J" )
BUILD_CONFIG[JDK_BOOT_DIR]="$1";shift;;

Expand Down Expand Up @@ -481,6 +485,9 @@ function configDefaults() {
BUILD_CONFIG[ADOPT_PATCHES]=true

BUILD_CONFIG[DISABLE_ADOPT_BRANCH_SAFETY]=false

# Used in 'release' file for jdk8u
BUILD_CONFIG[IMPLEMENTOR]=${BUILD_CONFIG[IMPLEMENTOR]:-"AdoptOpenJDK"}
}

# Declare the map of build configuration that we're going to use
Expand Down

0 comments on commit e3b9aaa

Please sign in to comment.