Merge pull request #219 from eed3si9n/wip/test-mac

more portable jdk_version function
This commit is contained in:
Dale Wijnand 2018-02-16 09:57:17 +00:00 committed by GitHub
commit 35072a62b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 9 deletions

View File

@ -12,18 +12,30 @@ matrix:
- script:
- sbt -Dsbt.build.version=$SBT_VER universal:packageBin
- cd citest && ./test.sh
jdk: oraclejdk8
## build using JDK 8, test using JDK 8, on macOS
- script:
- sbt -Dsbt.build.version=$SBT_VER universal:packageBin
- cd citest && ./test.sh
## https://github.com/travis-ci/travis-ci/issues/2316
language: java
os: osx
osx_image: xcode9.2
## build using JDK 8, test using JDK 9
- script:
- sbt -Dsbt.build.version=$SBT_VER universal:packageBin
- jdk_switcher use oraclejdk9
- cd citest && ./test.sh
jdk: oraclejdk8
## build using JDK 8, test using JDK 10
- script:
- sbt -Dsbt.build.version=$SBT_VER universal:packageBin
- citest/install-jdk10.sh
- cd citest && ./test.sh
jdk: oraclejdk8
- script:
- sbt -Dsbt.build.version=$SBT_VER rpm:packageBin debian:packageBin
@ -32,16 +44,18 @@ matrix:
packages:
- fakeroot
- rpm
jdk: oraclejdk8
scala:
- 2.10.7
jdk:
- oraclejdk8
# Undo _JAVA_OPTIONS environment variable
before_script:
- _JAVA_OPTIONS=
before_install:
# https://github.com/travis-ci/travis-ci/issues/8408
- unset _JAVA_OPTIONS
- if [[ "$TRAVIS_OS_NAME" = "osx" ]]; then
brew update;
brew install sbt;
fi
cache:
directories:

View File

@ -146,6 +146,32 @@ is_function_defined() {
declare -f "$1" > /dev/null
}
# parses JDK version from the -version output line.
# 8 for 1.8.0_nn, 9 for 9-ea etc, and "no_java" for undetected
jdk_version() {
local result
local lines=$("$java_cmd" -Xms32M -Xmx32M -version 2>&1 | tr '\r' '\n')
local IFS=$'\n'
for line in $lines; do
if [[ (-z $result) && ($line = *"version \""*) ]]
then
local ver=$(echo $line | sed -e 's/.*version "\(.*\)"\(.*\)/\1/; 1q')
# on macOS sed doesn't support '?'
if [[ $ver = "1."* ]]
then
result=$(echo $ver | sed -e 's/1\.\([0-9]*\)\(.*\)/\1/; 1q')
else
result=$(echo $ver | sed -e 's/\([0-9]*\)\(.*\)/\1/; 1q')
fi
fi
done
if [[ -z $result ]]
then
result=no_java
fi
echo "$result"
}
process_args () {
while [[ $# -gt 0 ]]; do
case "$1" in
@ -179,9 +205,7 @@ process_args () {
process_my_args "${myargs[@]}"
}
## parses java version from the -version output line
## https://regex101.com/r/0r3kKb/1/tests
java_version=$("$java_cmd" -Xms128M -Xmx512M -version 2>&1 | tr '\r' '\n' | grep ' version "' | sed 's/.*version "\(1\.\)\?\([0-9]*\)\{0,1\}\(.*\)*/\2/; 1q')
java_version="$(jdk_version)"
vlog "[process_args] java_version = '$java_version'"
}