Rework the way multi-jvm tests work
To allow some JVMs runs only subset of tests
This commit is contained in:
parent
854866df57
commit
f71192266c
|
@ -13,12 +13,9 @@ cache_keys: &cache_keys
|
||||||
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}
|
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}
|
||||||
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}
|
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
docker:
|
|
||||||
- image: circleci/openjdk:8-jdk
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
|
@ -28,7 +25,7 @@ jobs:
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Build Project
|
name: Build Project
|
||||||
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx1G -Xms64M" ./gradlew clean :dd-java-agent:shadowJar compileTestGroovy compileTestScala compileTestJava check -x test -x latestDepTest -x traceAgentTest --build-cache --parallel --stacktrace --no-daemon --max-workers=4
|
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx1G -Xms64M" ./gradlew clean :dd-java-agent:shadowJar compileTestGroovy compileTestScala compileTestJava --build-cache --parallel --stacktrace --no-daemon --max-workers=4
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Collect Libs
|
name: Collect Libs
|
||||||
|
@ -38,14 +35,6 @@ jobs:
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: ./libs
|
path: ./libs
|
||||||
|
|
||||||
- run:
|
|
||||||
name: Collect Reports
|
|
||||||
when: always
|
|
||||||
command: .circleci/collect_reports.sh
|
|
||||||
|
|
||||||
- store_artifacts:
|
|
||||||
path: ./reports
|
|
||||||
|
|
||||||
- persist_to_workspace:
|
- persist_to_workspace:
|
||||||
root: .
|
root: .
|
||||||
paths:
|
paths:
|
||||||
|
@ -54,7 +43,6 @@ jobs:
|
||||||
- save_cache:
|
- save_cache:
|
||||||
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}
|
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}
|
||||||
paths: ~/.gradle
|
paths: ~/.gradle
|
||||||
background: true
|
|
||||||
|
|
||||||
|
|
||||||
default_test_job: &default_test_job
|
default_test_job: &default_test_job
|
||||||
|
@ -111,7 +99,7 @@ jobs:
|
||||||
test_7:
|
test_7:
|
||||||
<<: *default_test_job
|
<<: *default_test_job
|
||||||
environment:
|
environment:
|
||||||
- JAVA7_HOME: /usr/lib/jvm/zulu-7-amd64
|
- JAVA_7_HOME: /usr/lib/jvm/zulu-7-amd64
|
||||||
- TEST_TASK: testJava7
|
- TEST_TASK: testJava7
|
||||||
- INSTALL_ZULU: zulu-7
|
- INSTALL_ZULU: zulu-7
|
||||||
|
|
||||||
|
@ -124,28 +112,28 @@ jobs:
|
||||||
test_9:
|
test_9:
|
||||||
<<: *default_test_job
|
<<: *default_test_job
|
||||||
environment:
|
environment:
|
||||||
- JAVA9_HOME: /usr/lib/jvm/zulu-9-amd64
|
- JAVA_9_HOME: /usr/lib/jvm/zulu-9-amd64
|
||||||
- TEST_TASK: testJava9 latestDepTestJava9
|
- TEST_TASK: testJava9
|
||||||
- INSTALL_ZULU: zulu-9
|
- INSTALL_ZULU: zulu-9
|
||||||
|
|
||||||
test_10:
|
test_10:
|
||||||
<<: *default_test_job
|
<<: *default_test_job
|
||||||
environment:
|
environment:
|
||||||
- JAVA10_HOME: /usr/lib/jvm/zulu-10-amd64
|
- JAVA_10_HOME: /usr/lib/jvm/zulu-10-amd64
|
||||||
- TEST_TASK: testJava10 latestDepTestJava10
|
- TEST_TASK: testJava10
|
||||||
- INSTALL_ZULU: zulu-10
|
- INSTALL_ZULU: zulu-10
|
||||||
|
|
||||||
test_11:
|
test_11:
|
||||||
<<: *default_test_job
|
<<: *default_test_job
|
||||||
environment:
|
environment:
|
||||||
- JAVA11_HOME: /usr/lib/jvm/jdk-11
|
- JAVA_11_HOME: /usr/lib/jvm/jdk-11
|
||||||
- TEST_TASK: testJava11 latestDepTestJava11
|
- TEST_TASK: testJava11
|
||||||
- INSTALL_OPENJDK: https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz
|
- INSTALL_OPENJDK: https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz
|
||||||
|
|
||||||
agent_integration_tests:
|
agent_integration_tests:
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/openjdk:8-jdk
|
- image: *default_container
|
||||||
- image: datadog/docker-dd-agent
|
- image: datadog/docker-dd-agent
|
||||||
environment:
|
environment:
|
||||||
- DD_APM_ENABLED=true
|
- DD_APM_ENABLED=true
|
||||||
|
@ -158,11 +146,7 @@ jobs:
|
||||||
at: .
|
at: .
|
||||||
|
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
# Reset the cache approx every release
|
<<: *cache_keys
|
||||||
keys:
|
|
||||||
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}
|
|
||||||
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}
|
|
||||||
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}
|
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Run Trace Agent Tests
|
name: Run Trace Agent Tests
|
||||||
|
@ -184,6 +168,30 @@ jobs:
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: ./results
|
path: ./results
|
||||||
|
|
||||||
|
check:
|
||||||
|
<<: *defaults
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
|
||||||
|
- attach_workspace:
|
||||||
|
at: .
|
||||||
|
|
||||||
|
- restore_cache:
|
||||||
|
<<: *cache_keys
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: Build Project
|
||||||
|
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx1G -Xms64M" ./gradlew check -PskipTests --build-cache --parallel --stacktrace --no-daemon --max-workers=4
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: Collect Reports
|
||||||
|
when: always
|
||||||
|
command: .circleci/collect_reports.sh
|
||||||
|
|
||||||
|
- store_artifacts:
|
||||||
|
path: ./reports
|
||||||
|
|
||||||
scan_versions:
|
scan_versions:
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
steps:
|
steps:
|
||||||
|
@ -280,6 +288,13 @@ workflows:
|
||||||
tags:
|
tags:
|
||||||
only: /.*/
|
only: /.*/
|
||||||
|
|
||||||
|
- check:
|
||||||
|
requires:
|
||||||
|
- build
|
||||||
|
filters:
|
||||||
|
tags:
|
||||||
|
only: /.*/
|
||||||
|
|
||||||
- scan_versions:
|
- scan_versions:
|
||||||
requires:
|
requires:
|
||||||
- build
|
- build
|
||||||
|
@ -295,6 +310,7 @@ workflows:
|
||||||
- test_10
|
- test_10
|
||||||
- test_11
|
- test_11
|
||||||
- agent_integration_tests
|
- agent_integration_tests
|
||||||
|
- check
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: master
|
only: master
|
||||||
|
@ -309,6 +325,7 @@ workflows:
|
||||||
- test_10
|
- test_10
|
||||||
- test_11
|
- test_11
|
||||||
- agent_integration_tests
|
- agent_integration_tests
|
||||||
|
- check
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
ignore: /.*/
|
ignore: /.*/
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
project.ext {
|
||||||
|
// Execute tests on all JVMs, even rare and outdated ones
|
||||||
|
integrationTests = true
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
description = 'dd-java-agent-ittests'
|
description = 'dd-java-agent-ittests'
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
apply from: "${rootDir}/gradle/test-with-scala.gradle"
|
apply from: "${rootDir}/gradle/test-with-scala.gradle"
|
||||||
|
|
||||||
|
@ -58,4 +63,3 @@ dependencies {
|
||||||
}
|
}
|
||||||
|
|
||||||
test.dependsOn lagomTest
|
test.dependsOn lagomTest
|
||||||
testJava8Minimum += '*Test*.class'
|
|
||||||
|
|
|
@ -170,7 +170,6 @@ class AkkaHttpClientInstrumentationTest extends AgentTestRunner {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def "#route pool request trace"() {
|
def "#route pool request trace"() {
|
||||||
setup:
|
setup:
|
||||||
def url = server.address.resolve("/" + route).toURL()
|
def url = server.address.resolve("/" + route).toURL()
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
@ -44,5 +49,3 @@ dependencies {
|
||||||
latestDepTestCompile group: 'com.couchbase.client', name: 'java-client', version: '2.6+'
|
latestDepTestCompile group: 'com.couchbase.client', name: 'java-client', version: '2.6+'
|
||||||
latestDepTestCompile group: 'com.couchbase.client', name: 'encryption', version: '+'
|
latestDepTestCompile group: 'com.couchbase.client', name: 'encryption', version: '+'
|
||||||
}
|
}
|
||||||
|
|
||||||
testJava8Minimum += "**/*.class"
|
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
// Test use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.)
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
maxJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
group = "com.datastax.cassandra"
|
group = "com.datastax.cassandra"
|
||||||
|
@ -8,9 +15,6 @@ muzzle {
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
// These classes use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.)
|
|
||||||
testJava8Only += '**/CassandraClientTest.class'
|
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
||||||
testSets {
|
testSets {
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
group = "org.elasticsearch.client"
|
group = "org.elasticsearch.client"
|
||||||
|
@ -9,8 +14,6 @@ muzzle {
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
testJava8Minimum += '**/*Test.class'
|
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
||||||
testSets {
|
testSets {
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
maxJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
group = "org.elasticsearch"
|
group = "org.elasticsearch"
|
||||||
|
@ -9,8 +15,6 @@ muzzle {
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
testJava8Only += '**/*Test.class'
|
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
||||||
testSets {
|
testSets {
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
group = "org.elasticsearch.client"
|
group = "org.elasticsearch.client"
|
||||||
|
@ -15,8 +20,6 @@ muzzle {
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
testJava8Minimum += '**/*Test.class'
|
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
||||||
testSets {
|
testSets {
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
group = "org.elasticsearch.client"
|
group = "org.elasticsearch.client"
|
||||||
|
@ -15,8 +20,6 @@ muzzle {
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
testJava8Minimum += '**/*Test.class'
|
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
||||||
testSets {
|
testSets {
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
group = "org.elasticsearch.client"
|
group = "org.elasticsearch.client"
|
||||||
|
@ -15,8 +20,6 @@ muzzle {
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
testJava8Minimum += '**/*Test.class'
|
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
||||||
testSets {
|
testSets {
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
project.ext {
|
||||||
|
// Execute tests on all JVMs, even rare and outdated ones
|
||||||
|
coreJavaInstrumentation = true
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -10,5 +16,4 @@ dependencies {
|
||||||
|
|
||||||
testCompile project(':dd-java-agent:testing')
|
testCompile project(':dd-java-agent:testing')
|
||||||
testCompile group: 'org.springframework', name: 'spring-web', version: '4.3.7.RELEASE'
|
testCompile group: 'org.springframework', name: 'spring-web', version: '4.3.7.RELEASE'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
project.ext {
|
||||||
|
// Execute tests on all JVMs, even rare and outdated ones
|
||||||
|
coreJavaInstrumentation = true
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
apply from: "${rootDir}/gradle/test-with-scala.gradle"
|
apply from: "${rootDir}/gradle/test-with-scala.gradle"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
project.ext {
|
||||||
|
// Execute tests on all JVMs, even rare and outdated ones
|
||||||
|
coreJavaInstrumentation = true
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
maxJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
apply plugin: 'version-scan'
|
apply plugin: 'version-scan'
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
|
@ -62,7 +68,3 @@ configurations.latestDepTestCompile {
|
||||||
force group: 'io.lettuce', name: 'lettuce-core', version: '+'
|
force group: 'io.lettuce', name: 'lettuce-core', version: '+'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
testJava8Only += '**/LettuceAsyncClientTest.class'
|
|
||||||
testJava8Only += '**/LettuceSyncClientTest.class'
|
|
||||||
testJava8Only += '**/LettuceReactiveClientTest.class'
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
maxJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
|
@ -59,4 +65,3 @@ configurations.latestDepTestCompile {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
testJava8Only += '**/*Test.class'
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
maxJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
|
@ -59,4 +65,3 @@ configurations.latestDepTestCompile {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
testJava8Only += '**/*Test.class'
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
apply from: "${rootDir}/gradle/test-with-scala.gradle"
|
apply from: "${rootDir}/gradle/test-with-scala.gradle"
|
||||||
|
|
||||||
|
@ -48,5 +53,3 @@ compileLatestDepTestGroovy {
|
||||||
classpath = classpath.plus(files(compileLatestDepTestScala.destinationDir))
|
classpath = classpath.plus(files(compileLatestDepTestScala.destinationDir))
|
||||||
dependsOn compileLatestDepTestScala
|
dependsOn compileLatestDepTestScala
|
||||||
}
|
}
|
||||||
|
|
||||||
testJava8Minimum += '*Play*Test*'
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
maxJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
apply plugin: 'version-scan'
|
apply plugin: 'version-scan'
|
||||||
|
|
||||||
versionScan {
|
versionScan {
|
||||||
|
@ -27,9 +33,11 @@ compileMain_java8Java {
|
||||||
sourceCompatibility = 1.8
|
sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
}
|
}
|
||||||
configurations {
|
// Note: ideally lombok plugin would do this for us, but currently it doesn't support custom
|
||||||
main_java8AnnotationProcessor.extendsFrom lombok
|
// source sets. See https://github.com/franzbecker/gradle-lombok/issues/17.
|
||||||
main_java8Implementation.extendsFrom lombok
|
dependencies {
|
||||||
|
main_java8CompileOnly "org.projectlombok:lombok:${project.lombok.version}" transitive false
|
||||||
|
main_java8AnnotationProcessor "org.projectlombok:lombok:${project.lombok.version}" transitive false
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
@ -65,5 +73,3 @@ configurations.latestDepTestCompile {
|
||||||
force group: 'io.ratpack', name: 'ratpack-groovy-test', version: '+'
|
force group: 'io.ratpack', name: 'ratpack-groovy-test', version: '+'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
testJava8Only += '**/RatpackTest.class'
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
// building against 2.3 and testing against 2.4 because JettyHandler is available since 2.4 only
|
// building against 2.3 and testing against 2.4 because JettyHandler is available since 2.4 only
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
|
@ -10,8 +15,6 @@ muzzle {
|
||||||
|
|
||||||
apply from: "${rootDir}/gradle/java.gradle"
|
apply from: "${rootDir}/gradle/java.gradle"
|
||||||
|
|
||||||
testJava8Minimum += '**/SparkJavaBasedTest.class'
|
|
||||||
|
|
||||||
apply plugin: 'org.unbroken-dome.test-sets'
|
apply plugin: 'org.unbroken-dome.test-sets'
|
||||||
|
|
||||||
testSets {
|
testSets {
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
// Set properties before any plugins get loaded
|
||||||
|
ext {
|
||||||
|
minJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
maxJavaVersionForTests = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
muzzle {
|
muzzle {
|
||||||
pass {
|
pass {
|
||||||
group = "org.springframework"
|
group = "org.springframework"
|
||||||
|
@ -77,6 +83,3 @@ configurations.latestDepTestCompile {
|
||||||
force group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty', version: '+'
|
force group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty', version: '+'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
testJava8Only += '**/*Test.class'
|
|
||||||
testJava8Only += '**/*TestApplication.class'
|
|
||||||
|
|
|
@ -1,19 +1,15 @@
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath "io.franzbecker:gradle-lombok:1.13"
|
|
||||||
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.7.3"
|
|
||||||
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.1"
|
|
||||||
classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.14"
|
|
||||||
classpath "org.unbroken-dome.gradle-plugins:gradle-testsets-plugin:1.5.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
id 'io.franzbecker.gradle-lombok' version '1.13'
|
||||||
|
id 'com.jfrog.artifactory' version '4.7.5'
|
||||||
|
id 'com.jfrog.bintray' version '1.8.4'
|
||||||
|
id 'net.ltgt.errorprone' version '0.0.14'
|
||||||
|
id 'org.unbroken-dome.test-sets' version '1.5.1'
|
||||||
|
|
||||||
id 'com.gradle.build-scan' version '1.15.1'
|
id 'com.gradle.build-scan' version '1.15.1'
|
||||||
id 'com.github.sherter.google-java-format' version '0.7.1'
|
// Not applying google java format by default because it gets confused by stray java build
|
||||||
|
// files in 'workspace' build directory in CI
|
||||||
|
id 'com.github.sherter.google-java-format' version '0.7.1' apply false
|
||||||
id 'com.dorongold.task-tree' version '1.3'
|
id 'com.dorongold.task-tree' version '1.3'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,6 @@ apply plugin: 'com.github.sherter.google-java-format'
|
||||||
|
|
||||||
googleJavaFormat {
|
googleJavaFormat {
|
||||||
source = sourceSets*.allJava
|
source = sourceSets*.allJava
|
||||||
include '**/*.java'
|
|
||||||
exclude '**/build/**/*.java'
|
exclude '**/build/**/*.java'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ ext {
|
||||||
groovy : groovyVer,
|
groovy : groovyVer,
|
||||||
junit : "4.12",
|
junit : "4.12",
|
||||||
logback : "1.2.3",
|
logback : "1.2.3",
|
||||||
lombok : "1.18.0",
|
lombok : "1.18.2",
|
||||||
bytebuddy : "1.9.0",
|
bytebuddy : "1.9.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'groovy'
|
apply plugin: 'groovy'
|
||||||
|
|
||||||
|
apply from: "$rootDir/gradle/checkstyle.gradle"
|
||||||
|
apply from: "$rootDir/gradle/codenarc.gradle"
|
||||||
|
apply from: "$rootDir/gradle/jacoco.gradle"
|
||||||
|
|
||||||
sourceCompatibility = 1.7
|
sourceCompatibility = 1.7
|
||||||
targetCompatibility = 1.7
|
targetCompatibility = 1.7
|
||||||
|
|
||||||
|
@ -136,43 +140,113 @@ if (project.hasProperty("removeJarVersionNumbers") && removeJarVersionNumbers) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (project.parent && project.parent.hasProperty("javaExecutableVersionCache")) {
|
||||||
|
project.ext.javaExecutableVersionCache = project.parent.ext.javaExecutableVersionCache
|
||||||
|
} else {
|
||||||
|
project.ext.javaExecutableVersionCache = [:]
|
||||||
|
}
|
||||||
|
def getJavaExecutableVersion(String path) {
|
||||||
|
def cache = project.ext.javaExecutableVersionCache
|
||||||
|
|
||||||
project.ext.testJava8Only = []
|
if (cache.containsKey(path)) {
|
||||||
project.ext.testJava8Minimum = []
|
return cache.get(path)
|
||||||
|
|
||||||
tasks.withType(Test) {
|
|
||||||
if (name.endsWith("Java7") || name.endsWith("Java9") || name.endsWith("Java10") || name.endsWith("Java11")) {
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
new ByteArrayOutputStream().withStream { stream ->
|
||||||
def cloned = it
|
exec {
|
||||||
|
commandLine = [path, "-version"]
|
||||||
[7, 9, 10, 11].each { i ->
|
errorOutput = stream
|
||||||
def javaHome = System.getenv("JAVA${i}_HOME")
|
}
|
||||||
if (javaHome != null) {
|
def matcher = stream.toString() =~ /^(?:java|openjdk) version "([^"]+)"/
|
||||||
def test = task "${cloned.name}Java${i}"(type: cloned.class) {
|
if (matcher) {
|
||||||
group = "Verification"
|
def version = JavaVersion.toVersion(matcher.group(1))
|
||||||
description "Runs $cloned.name under Java ${i}"
|
cache.put(path, version)
|
||||||
executable = "$javaHome/bin/java"
|
return version
|
||||||
if (i == 7) {
|
} else {
|
||||||
afterEvaluate {
|
throw new GradleScriptException("Cannot determine java version: ${stream.toString}")
|
||||||
exclude project.testJava8Only
|
|
||||||
exclude project.testJava8Minimum
|
|
||||||
}
|
|
||||||
} else if (i > 8) {
|
|
||||||
afterEvaluate {
|
|
||||||
exclude project.testJava8Only
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tasks.check.dependsOn test
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: "$rootDir/gradle/checkstyle.gradle"
|
def isJavaVersionAllowed(JavaVersion version) {
|
||||||
apply from: "$rootDir/gradle/codenarc.gradle"
|
if (project.hasProperty('minJavaVersionForTests') && project.getProperty('minJavaVersionForTests').compareTo(version) > 0) {
|
||||||
apply from: "$rootDir/gradle/jacoco.gradle"
|
return false
|
||||||
|
}
|
||||||
|
if (project.hasProperty('maxJavaVersionForTests') && project.getProperty('maxJavaVersionForTests').compareTo(version) < 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// JVM names we would like to run complete test suite on
|
||||||
|
// Note: complete test suite is always run on JVM used for compilation
|
||||||
|
// Note2: apparently there is no way to have a 'global' variable, so instead we have per project
|
||||||
|
// attribute that has same value in all projects
|
||||||
|
project.ext.majorSupportedJVMs = ["7", "11"]
|
||||||
|
|
||||||
|
def isTestingEnabled(String javaName) {
|
||||||
|
if (javaName in project.majorSupportedJVMs) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if (project.findProperty("coreJavaInstrumentation") || project.findProperty("integrationTests")) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable default test tasks if current JVM doesn't match version requirements
|
||||||
|
tasks.withType(Test) {
|
||||||
|
if (name.endsWith("Generated")) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Always run all tests that are runnable on JVM used for compilation
|
||||||
|
onlyIf { isJavaVersionAllowed(JavaVersion.current()) }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate tests tasks for all provided JVMs
|
||||||
|
for (def env : System.getenv().entrySet()) {
|
||||||
|
def matcher = env.key =~ /JAVA_([^_]+)_HOME/
|
||||||
|
if (!matcher) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
def javaName = matcher.group(1)
|
||||||
|
def javaHome = env.value
|
||||||
|
def javaPath = "$javaHome/bin/java"
|
||||||
|
def javaVersion = getJavaExecutableVersion(javaPath)
|
||||||
|
|
||||||
|
def parentTask = task "testJava${javaName}"() {
|
||||||
|
group = 'Verification'
|
||||||
|
description = "Run tests for Java ${javaName}"
|
||||||
|
}
|
||||||
|
tasks.check.dependsOn parentTask
|
||||||
|
|
||||||
|
tasks.withType(Test) {
|
||||||
|
if (name.endsWith("Generated")) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
def clonedTask = it
|
||||||
|
def newTask = task "${clonedTask.name}Java${javaName}Generated"(type: clonedTask.class) {
|
||||||
|
description "Runs $clonedTask.name under java ${javaName}"
|
||||||
|
executable = javaPath
|
||||||
|
onlyIf { isJavaVersionAllowed(javaVersion) && isTestingEnabled(javaName) }
|
||||||
|
jacoco {
|
||||||
|
// Disable jacoco for additional JVM tests to speed things up a bit
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
parentTask.dependsOn newTask
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable all tests if skipTests property was specified
|
||||||
|
if (project.hasProperty("skipTests")) {
|
||||||
|
tasks.withType(Test) {
|
||||||
|
onlyIf { false }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
plugins.withType(BasePlugin) {
|
plugins.withType(BasePlugin) {
|
||||||
project.afterEvaluate {
|
project.afterEvaluate {
|
||||||
|
|
Loading…
Reference in New Issue