forked from I2P_Developers/i2p.i2p
Travis CI: Update config to handle cross-compilation
This commit is contained in:
18
.travis.yml
18
.travis.yml
@@ -2,7 +2,6 @@ language: java
|
||||
|
||||
jdk:
|
||||
- oraclejdk9
|
||||
- openjdk8
|
||||
|
||||
matrix:
|
||||
include:
|
||||
@@ -10,18 +9,23 @@ matrix:
|
||||
addons:
|
||||
sonarcloud:
|
||||
organization: "i2p"
|
||||
before_install:
|
||||
- export JAVA7_HOME=$(jdk_switcher home openjdk7)
|
||||
- sed -i "1iplugins {\n id 'org.sonarqube' version '2.6.1'\n}\n" build.gradle
|
||||
- jdk: openjdk8
|
||||
before_install:
|
||||
- export JAVA7_HOME=$(jdk_switcher home openjdk7)
|
||||
- jdk: openjdk7
|
||||
sudo: required
|
||||
before_install: # Work around missing crypto in openjdk7
|
||||
- export JAVA7_HOME=$(jdk_switcher home openjdk7)
|
||||
- sudo wget "https://bouncycastle.org/download/bcprov-ext-jdk15on-158.jar" -O "${JAVA_HOME}/jre/lib/ext/bcprov-ext-jdk15on-158.jar"
|
||||
- sudo perl -pi.bak -e 's/^(security\.provider\.)([0-9]+)/$1.($2+1)/ge' /etc/java-7-openjdk/security/java.security
|
||||
- echo "security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider" | sudo tee -a /etc/java-7-openjdk/security/java.security
|
||||
|
||||
before_install:
|
||||
- |
|
||||
if [ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ]; then
|
||||
sed -i "1iplugins {\n id 'org.sonarqube' version '2.6.1'\n}\n" build.gradle
|
||||
fi
|
||||
install:
|
||||
- export TARGET_JAVA_HOME=$JAVA_HOME
|
||||
- jdk_switcher use oraclejdk8
|
||||
- ./gradlew assemble
|
||||
|
||||
before_cache:
|
||||
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
||||
|
39
build.gradle
39
build.gradle
@@ -40,6 +40,15 @@ String compat(String src) {
|
||||
}
|
||||
}
|
||||
|
||||
String javaExecutable(String targetJavaHome, String execName) {
|
||||
def javaExecutablesPath = new File(targetJavaHome, "bin")
|
||||
def executable = new File(javaExecutablesPath, execName)
|
||||
if (!executable.exists()) {
|
||||
throw new IllegalArgumentException("There is no ${execName} executable in ${javaExecutablesPath}")
|
||||
}
|
||||
executable.toString()
|
||||
}
|
||||
|
||||
def releaseVersion = getReleaseVersion()
|
||||
def buildVersion = getBuildVersion()
|
||||
def buildExtra = getBuildExtra()
|
||||
@@ -98,6 +107,36 @@ configure(javaProjects) {
|
||||
options.compilerArgs.addAll(['--release', version])
|
||||
}
|
||||
}
|
||||
|
||||
// Set up Java override if configured (used to test with Java 7).
|
||||
def targetJavaHome = System.getenv("TARGET_JAVA_HOME")
|
||||
if (targetJavaHome) {
|
||||
if (JavaVersion.current().java9Compatible) {
|
||||
throw new GradleException("Only set TARGET_JAVA_HOME with JDK 8")
|
||||
}
|
||||
|
||||
project.afterEvaluate {
|
||||
logger.info("Target Java home set to ${targetJavaHome}")
|
||||
logger.info("Configuring Gradle to use forked compilation and testing")
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
options.fork = true
|
||||
options.forkOptions.javaHome = file(targetJavaHome)
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc) {
|
||||
executable = javaExecutable(targetJavaHome, "javadoc")
|
||||
}
|
||||
|
||||
tasks.withType(Test) {
|
||||
executable = javaExecutable(targetJavaHome, "java")
|
||||
}
|
||||
|
||||
tasks.withType(JavaExec) {
|
||||
executable = javaExecutable(targetJavaHome, "java")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task codeCoverageReport(type: JacocoReport) {
|
||||
|
Reference in New Issue
Block a user