You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/02/21 15:13:23 UTC
groovy git commit: Add more JDK builds
Repository: groovy
Updated Branches:
refs/heads/master 972958ce3 -> 63fc0a403
Add more JDK builds
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/63fc0a40
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/63fc0a40
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/63fc0a40
Branch: refs/heads/master
Commit: 63fc0a4036538fcf329d3a5b104dd32aa56d2d56
Parents: 972958c
Author: danielsun1106 <re...@hotmail.com>
Authored: Wed Feb 21 23:13:16 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Wed Feb 21 23:13:16 2018 +0800
----------------------------------------------------------------------
.travis.yml | 27 +++++++---
src/install/install-jdk.sh | 107 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 126 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/63fc0a40/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 9473e53..80087cc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,23 +18,34 @@ language: groovy
# set sudo required for non-container vm with more mem even though we don't need sudo
# https://docs.travis-ci.com/user/reference/overview/
sudo: required
+dist: trusty
matrix:
include:
+# Java 10 "Oracle JDK"
+ - env: JDK_RELEASE='Oracle JDK 10' EXTRA_GRADLE_ARGS=''
+ install: . ./src/install/install-jdk.sh -F 10 -L BCL
+# Java 10 "OpenJDK"
+ - env: JDK_RELEASE='OpenJDK 10' EXTRA_GRADLE_ARGS=''
+ install: . ./src/install/install-jdk.sh -F 10 -L GPL
+# Java 9 "Oracle JDK" (provided by Travis CI)
- jdk: oraclejdk9
+ env: JDK_RELEASE='Oracle JDK 9' EXTRA_GRADLE_ARGS=''
+ install: echo "Don't let Travis CI execute './gradlew assemble' by default"
+# Java 9 "OpenJDK"
+ - env: JDK_RELEASE='OpenJDK 9' EXTRA_GRADLE_ARGS=''
+ install: . ./src/install/install-jdk.sh -F 9 -L GPL
+# Java 8 "Oracle JDK" (provided by Travis CI)
- jdk: oraclejdk8
+ env: JDK_RELEASE='Oracle JDK 8' EXTRA_GRADLE_ARGS=''
+ install: echo "Don't let Travis CI execute './gradlew assemble' by default"
+# Java 8 "OpenJDK"
+ - env: JDK_RELEASE='OpenJDK 8' EXTRA_GRADLE_ARGS=''
+ install: . ./src/install/install-jdk.sh -F 8 -L GPL
-dist: trusty
-
-install: true
-
-# adjust gradle.properties if needed
before_script:
- |
unset _JAVA_OPTIONS
- if [ $TRAVIS_JDK_VERSION == "oraclejdk9" ]; then
- sed -i 's/org.gradle.jvmargs=.*/org.gradle.jvmargs=-ea -Xms500m -Xmx1500m/' gradle.properties
- fi
script: travis_wait 60 ./gradlew test
http://git-wip-us.apache.org/repos/asf/groovy/blob/63fc0a40/src/install/install-jdk.sh
----------------------------------------------------------------------
diff --git a/src/install/install-jdk.sh b/src/install/install-jdk.sh
new file mode 100644
index 0000000..47ba4c3
--- /dev/null
+++ b/src/install/install-jdk.sh
@@ -0,0 +1,107 @@
+#!/usr/bin/env bash
+
+#
+# Install JDK for Linux
+#
+# This script determines the most recent early-access build number,
+# downloads the JDK archive to the user home directory and extracts
+# it there.
+#
+# Example usage
+#
+# install-jdk.sh | install most recent early-access JDK
+# install-jdk.sh -W /usr/opt | install most recent early-access JDK to /usr/opt
+# install-jdk.sh -F 9 | install most recent OpenJDK 9
+# install-jdk.sh -F 10 | install most recent OpenJDK 10
+# install-jdk.sh -F 10 -L BCL | install most recent OracleJDK 10
+#
+# Options
+#
+# -F f | Feature number of the JDK release, [9|10|...]
+# -B b | Build number of the JDK release [?|1|2...]
+# -L l | License of the JDK [GPL|BCL]
+# -W w | Working directory and install path [${HOME}]
+#
+# Exported environment variables
+#
+# JAVA_HOME is set to the extracted JDK directory
+# PATH is prepended with ${JAVA_HOME}/bin
+#
+# (C) 2018 Christian Stein
+#
+# https://github.com/sormuras/bach/blob/master/install-jdk.sh
+#
+set -e
+
+JDK_FEATURE='10'
+JDK_BUILD='?'
+JDK_LICENSE='GPL'
+JDK_WORKSPACE=${HOME}
+
+while getopts F:B:L:W: option
+do
+ case "${option}" in
+ F) JDK_FEATURE=${OPTARG};;
+ B) JDK_BUILD=${OPTARG};;
+ L) JDK_LICENSE=${OPTARG};;
+ W) JDK_WORKSPACE=${OPTARG};;
+ esac
+done
+
+#
+# Other constants
+#
+JDK_DOWNLOAD='https://download.java.net/java'
+JDK_BASENAME='openjdk'
+if [ "${JDK_LICENSE}" != 'GPL' ]; then
+ JDK_BASENAME='jdk'
+fi
+
+#
+# 9
+#
+if [ "${JDK_FEATURE}" == '9' ]; then
+ if [ "${JDK_BUILD}" == '?' ]; then
+ TMP=$(curl -L jdk.java.net/${JDK_FEATURE})
+ TMP="${TMP#*<h1>JDK}" # remove everything before the number
+ TMP="${TMP%%General-Availability Release*}" # remove everything after the number
+ JDK_BUILD="$(echo -e "${TMP}" | tr -d '[:space:]')" # remove all whitespace
+ fi
+
+ JDK_ARCHIVE=${JDK_BASENAME}-${JDK_BUILD}_linux-x64_bin.tar.gz
+ JDK_URL=${JDK_DOWNLOAD}/GA/jdk${JDK_FEATURE}/${JDK_BUILD}/binaries/${JDK_ARCHIVE}
+ JDK_HOME=jdk-${JDK_BUILD}
+fi
+
+#
+# 10
+#
+if [ "${JDK_FEATURE}" == '10' ]; then
+ if [ "${JDK_BUILD}" == '?' ]; then
+ TMP=$(curl -L jdk.java.net/${JDK_FEATURE})
+ TMP="${TMP#*Most recent build: jdk-${JDK_FEATURE}+}" # remove everything before the number
+ TMP="${TMP%%<*}" # remove everything after the number
+ JDK_BUILD="$(echo -e "${TMP}" | tr -d '[:space:]')" # remove all whitespace
+ fi
+
+ JDK_ARCHIVE=${JDK_BASENAME}-${JDK_FEATURE}+${JDK_BUILD}_linux-x64_bin.tar.gz
+ JDK_URL=${JDK_DOWNLOAD}/jdk${JDK_FEATURE}/archive/${JDK_BUILD}/${JDK_LICENSE}/${JDK_ARCHIVE}
+ JDK_HOME=jdk-${JDK_FEATURE}
+fi
+
+#
+# Create any missing intermediate paths, switch to workspace, download, unpack, switch back.
+#
+mkdir -p ${JDK_WORKSPACE}
+cd ${JDK_WORKSPACE}
+wget ${JDK_URL}
+tar -xzf ${JDK_ARCHIVE}
+cd -
+
+#
+# Update environment and test-drive.
+#
+export JAVA_HOME=${JDK_WORKSPACE}/${JDK_HOME}
+export PATH=${JAVA_HOME}/bin:$PATH
+
+java --version