blob: ee12fe4e7af0230e0ff80fd383e4476624a77201 [file] [log] [blame]
Evgeny Mandrikov883e9be2015-09-02 02:27:27 +02001#!/bin/bash
2
3set -euo pipefail
4
5# Prevent accidental execution outside of Travis:
6if [ -z "${TRAVIS+false}" ]
7then
8 echo "TRAVIS environment variable is not set"
9 exit 1
10fi
11
12# Switch to desired JDK, download if required:
13function install_jdk {
14 JDK_URL=$1
15
16 FILENAME="${JDK_URL##*/}"
17
18 rm -rf /tmp/jdk/$JDK
19 mkdir -p /tmp/jdk/$JDK
20
21 if [ ! -f "/tmp/jdk/$FILENAME" ]
22 then
23 curl -L $JDK_URL -o /tmp/jdk/$FILENAME
24 fi
25
26 tar -xzf /tmp/jdk/$FILENAME -C /tmp/jdk/$JDK --strip-components 1
27
28 export JAVA_HOME="/tmp/jdk/$JDK"
29 export JDK_HOME="${JAVA_HOME}"
30 export JAVAC="${JAVA_HOME}/bin/javac"
31 export PATH="${JAVA_HOME}/bin:${PATH}"
32}
33
34source $HOME/.jdk_switcher_rc
35case "$JDK" in
366)
37 jdk_switcher use openjdk6
38 ;;
397|8)
40 jdk_switcher use oraclejdk${JDK}
41 ;;
428-ea)
43 install_jdk $JDK8_EA_URL
44 ;;
459-ea)
46 install_jdk $JDK9_EA_URL
47 ;;
48esac
49
50# Build:
51# TODO(Godin): see https://github.com/jacoco/jacoco/issues/300 about "bytecode.version"
52case "$JDK" in
536)
54 mvn -V -B -e verify -Dbytecode.version=1.6
55 ;;
567)
57 mvn -V -B -e verify -Dbytecode.version=1.7
58 ;;
598 | 8-ea)
60 mvn -V -B -e verify -Dbytecode.version=1.8
61 ;;
629-ea)
63 # "-XMaxPermSize" not supported by JDK 9, so remove it from MAVEN_OPTS set by Travis (https://github.com/travis-ci/travis-ci/issues/3893)
64 echo "export MAVEN_OPTS='-Dmaven.repo.local=$HOME/.m2/repository'" > ~/.mavenrc
65 # see https://bugs.openjdk.java.net/browse/JDK-8131041 about "java.locale.providers"
66 # TODO(Godin): maven-javadoc-plugin doesn't work well due to modularization of JDK 9 - skip it and hence distribution
67 mvn -V -B -e verify -Dbytecode.version=1.9 \
68 -Dmaven.javadoc.skip -pl !jacoco \
69 -DargLine=-Djava.locale.providers=JRE,SPI
70 ;;
71esac