Actually, the problem seems to be that on Travis the initial jvm heap size is nearly 1GB. Since Gradle forks quite a few JVMs by default (Compiler Daemons, Test Executors, TestKit Daemons), the memory pressure becomes too high and Travis begins to kill processes.
I solved it by controlling the number of forked JVMs (5) and reducing the initial heap size:
// build.gradle
if (System.env.TRAVIS == 'true') {
allprojects {
tasks.withType(GroovyCompile) {
groovyOptions.fork = false
}
tasks.withType(Test) {
// containers (currently) have 2 dedicated cores and 4GB of memory
maxParallelForks = 2
minHeapSize = '128m'
}
}
}
// .travis.yml
env:
global:
- GRADLE_OPTS="-Xms128m"