blob: a332eba1f737d63d2bf51048aca858329d8b68a6 [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
Evgeny Mandrikov10262412015-09-05 15:18:17 +020028 if [ -z "${2+false}" ]
29 then
30 export JAVA_HOME="/tmp/jdk/$JDK"
31 export JDK_HOME="${JAVA_HOME}"
32 export JAVAC="${JAVA_HOME}/bin/javac"
33 export PATH="${JAVA_HOME}/bin:${PATH}"
34 fi
Evgeny Mandrikov883e9be2015-09-02 02:27:27 +020035}
36
37source $HOME/.jdk_switcher_rc
38case "$JDK" in
Evgeny Mandrikov10262412015-09-05 15:18:17 +0200395)
40 install_jdk $JDK5_URL false
41 ;;
Evgeny Mandrikov883e9be2015-09-02 02:27:27 +0200426)
43 jdk_switcher use openjdk6
44 ;;
457|8)
46 jdk_switcher use oraclejdk${JDK}
47 ;;
488-ea)
49 install_jdk $JDK8_EA_URL
50 ;;
519-ea)
52 install_jdk $JDK9_EA_URL
53 ;;
54esac
55
56# Build:
57# TODO(Godin): see https://github.com/jacoco/jacoco/issues/300 about "bytecode.version"
58case "$JDK" in
Evgeny Mandrikov10262412015-09-05 15:18:17 +0200595)
60 mvn -V -B -e verify -Djdk.version=1.5 --toolchains=./.travis/toolchains.xml
61 ;;
Evgeny Mandrikov883e9be2015-09-02 02:27:27 +0200626)
63 mvn -V -B -e verify -Dbytecode.version=1.6
64 ;;
657)
66 mvn -V -B -e verify -Dbytecode.version=1.7
67 ;;
688 | 8-ea)
69 mvn -V -B -e verify -Dbytecode.version=1.8
70 ;;
719-ea)
72 # "-XMaxPermSize" not supported by JDK 9, so remove it from MAVEN_OPTS set by Travis (https://github.com/travis-ci/travis-ci/issues/3893)
73 echo "export MAVEN_OPTS='-Dmaven.repo.local=$HOME/.m2/repository'" > ~/.mavenrc
74 # see https://bugs.openjdk.java.net/browse/JDK-8131041 about "java.locale.providers"
75 # TODO(Godin): maven-javadoc-plugin doesn't work well due to modularization of JDK 9 - skip it and hence distribution
76 mvn -V -B -e verify -Dbytecode.version=1.9 \
77 -Dmaven.javadoc.skip -pl !jacoco \
78 -DargLine=-Djava.locale.providers=JRE,SPI
79 ;;
Evgeny Mandrikov10262412015-09-05 15:18:17 +020080*)
81 echo "Incorrect JDK [$JDK]"
82 exit 1;
83 ;;
Evgeny Mandrikov883e9be2015-09-02 02:27:27 +020084esac