cross JVM testing

This continues to use Oracle JDK 8 for building, but adds test jobs using oraclejdk8, oraclejdk9, and oraclejdk10.
This commit is contained in:
Eugene Yokota 2018-02-14 18:49:11 -05:00
parent b50cc6f342
commit 6f1e6c36d9
7 changed files with 97 additions and 20 deletions

2
.gitignore vendored
View File

@ -8,4 +8,4 @@ src_managed
.lib
/template-project/project/boot
*~
/citest/freshly-baked/

View File

@ -1,22 +1,53 @@
dist: trusty
addons:
apt:
packages:
- fakeroot
language: scala
script:
- sbt -Dsbt.build.version=1.0.3 ++$TRAVIS_SCALA_VERSION rpm:packageBin debian:packageBin universal:packageBin
env:
global:
- SBT_VER=1.1.1
matrix:
include:
## build using JDK 8, test using JDK 8
- script:
- sbt -Dsbt.build.version=$SBT_VER universal:packageBin
- cd citest && ./test.sh
## 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
## 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
- script:
- sbt -Dsbt.build.version=$SBT_VER rpm:packageBin debian:packageBin
addons:
apt:
packages:
- fakeroot
- rpm
scala:
- 2.10.3
- 2.10.7
jdk:
- oraclejdk8
notifications:
email:
- sbt-dev-bot@googlegroups.com
before_install:
- cat /etc/hosts # optionally check the content *before*
- sudo hostname "$(hostname | cut -c1-63)"
- sed -e "s/^\\(127\\.0\\.0\\.1.*\\)/\\1 $(hostname | cut -c1-63)/" /etc/hosts | sudo tee /etc/hosts
- cat /etc/hosts # optionally check the content *after*
- sudo apt-get update -qq
- sudo apt-get install -qq rpm
# Undo _JAVA_OPTIONS environment variable
before_script:
- _JAVA_OPTIONS=
cache:
directories:
- $HOME/.ivy2/cache
- $HOME/.sbt/boot
before_cache:
- find $HOME/.ivy2 -name "ivydata-*.properties" -delete
- find $HOME/.sbt -name "*.lock" -delete

5
citest/Hello.scala Normal file
View File

@ -0,0 +1,5 @@
package foo
object Hello extends App {
println("hello")
}

20
citest/install-jdk10.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# copied from https://github.com/junit-team/junit5/blob/master/src/install/install-jdk-10.sh
set -e
JDK_FEATURE=10
TMP=$(curl -L jdk.java.net/${JDK_FEATURE}) # extract most recent "JDK_BUILD" number from web page source...
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
JDK_ARCHIVE=jdk-${JDK_FEATURE}+${JDK_BUILD}_linux-x64_bin.tar.gz
cd ~
wget http://download.java.net/java/jdk${JDK_FEATURE}/archive/${JDK_BUILD}/BCL/${JDK_ARCHIVE}
tar -xzf ${JDK_ARCHIVE}
export JAVA_HOME=~/jdk-${JDK_FEATURE}
export PATH=${JAVA_HOME}/bin:$PATH
cd -
java --version

View File

@ -1 +1 @@
sbt.version=1.0.4
sbt.version=1.1.1

22
citest/test.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/bash
## https://github.com/travis-ci/travis-ci/issues/8408
export _JAVA_OPTIONS=
## begin Java switching
## swtich to JDK 10 if we've downloaded it
if [ -d ~/jdk-10 ]
then
JAVA_HOME=~/jdk-10
fi
## include JAVA_HOME into path
PATH=${JAVA_HOME}/bin:$PATH
java -version
## end of Java switching
mkdir freshly-baked
unzip -qo ../target/universal/sbt.zip -d ./freshly-baked
SBT_OPTS=-Dfile.encoding=UTF-8
./freshly-baked/sbt/bin/sbt about run

View File

@ -1,2 +1 @@
sbt.version=0.13.16