Skip to content

Commit 64d3903

Browse files
committed
Use workflows in Circle to test Java 7 and 8
Java 9 is commented out because there are some test failures that will be investigated later. Some tests had to be excluded from Java 7 because they don’t have a Java 7 compatible version.
1 parent cc274cb commit 64d3903

File tree

15 files changed

+218
-38
lines changed

15 files changed

+218
-38
lines changed

.circleci/config.yml

Lines changed: 136 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,118 @@
11
version: 2
2+
3+
defaults: &defaults
4+
working_directory: ~/dd-trace-java
5+
resource_class: large
6+
docker:
7+
- image: circleci/openjdk:8
8+
9+
test_job: &test_job
10+
steps:
11+
- attach_workspace:
12+
at: .
13+
14+
- run:
15+
name: Run Tests
16+
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew -g=gradle-home test --parallel --stacktrace --no-daemon --max-workers=3
17+
18+
- run:
19+
name: Save Artifacts to (project-root)/build
20+
when: always
21+
command: .circleci/save_artifacts.sh
22+
23+
- store_test_results:
24+
path: build/test-results
25+
26+
- store_artifacts:
27+
path: build
28+
29+
- persist_to_workspace:
30+
root: .
31+
paths: .
32+
233
jobs:
334
build:
4-
working_directory: ~/dd-trace-java
35+
<<: *defaults
536
docker:
637
- image: circleci/openjdk:8-jdk
7-
resource_class: xlarge
838

939
steps:
1040
- checkout
1141

1242
- restore_cache:
1343
# Reset the cache approx every release
14-
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}
44+
keys:
45+
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}-verified
46+
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}
47+
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}
48+
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}
49+
- dd-trace-java
1550

1651
- run:
1752
name: Build Project
18-
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew clean compileJava compileTestJava compileGroovy compileTestGroovy shadowJar --stacktrace --no-daemon
53+
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew -g=gradle-home clean check -x test --stacktrace --no-daemon
54+
55+
- save_cache:
56+
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}
57+
paths: gradle-home
58+
background: true
59+
60+
- persist_to_workspace:
61+
root: .
62+
paths: .
63+
64+
test_7:
65+
<<: *defaults
66+
docker:
67+
- image: openjdk:7-jdk
68+
69+
steps:
70+
- attach_workspace:
71+
at: .
72+
73+
- run:
74+
name: Fix EC parameters error # (ref https://github.com/travis-ci/travis-ci/issues/8503)
75+
command: |
76+
wget "https://downloads.bouncycastle.org/java/bcprov-ext-jdk15on-158.jar" -O "${JAVA_HOME}"/jre/lib/ext/bcprov-ext-jdk15on-158.jar && \
77+
perl -pi.bak -e 's/^(security\.provider\.)([0-9]+)/$1.($2+1)/ge' /etc/java-7-openjdk/security/java.security && \
78+
echo "security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider" | tee -a /etc/java-7-openjdk/security/java.security
1979
2080
- run:
2181
name: Run Tests
22-
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew check --parallel --stacktrace --no-daemon --max-workers=3
82+
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew -g=gradle-home test --parallel --stacktrace --no-daemon --max-workers=3
2383

2484
- run:
25-
name: Verify Version Scan
26-
command: ./gradlew verifyVersionScan --parallel --stacktrace --no-daemon
85+
name: Save Artifacts to (project-root)/build
86+
when: always
87+
command: .circleci/save_artifacts.sh
2788

28-
- save_cache:
29-
paths:
30-
- ~/.gradle
31-
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}
89+
- store_test_results:
90+
path: build/test-results
91+
92+
- store_artifacts:
93+
path: build
94+
95+
test_8:
96+
<<: *defaults
97+
<<: *test_job
98+
docker:
99+
- image: circleci/openjdk:8-jdk
100+
101+
# test_9:
102+
# <<: *defaults
103+
# <<: *test_job
104+
# docker:
105+
# - image: circleci/openjdk:9-jdk
106+
107+
scan_and_save:
108+
<<: *defaults
109+
steps:
110+
- attach_workspace:
111+
at: .
112+
113+
- run:
114+
name: Verify Version Scan
115+
command: ./gradlew -g=gradle-home verifyVersionScan --parallel --stacktrace --no-daemon
32116

33117
- run:
34118
name: Save Artifacts to (project-root)/build
@@ -41,6 +125,16 @@ jobs:
41125
- store_artifacts:
42126
path: build
43127

128+
- save_cache:
129+
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}-verified
130+
paths: gradle-home
131+
132+
deploy:
133+
<<: *defaults
134+
steps:
135+
- attach_workspace:
136+
at: .
137+
44138
- run:
45139
name: Decode Signing Key
46140
command: echo $PGP_KEY_FILE | base64 --decode > /home/circleci/dd-trace-java/.circleci/secring.gpg
@@ -49,11 +143,41 @@ jobs:
49143
name: Publish master to Artifactory
50144
command: |
51145
if [ "${CIRCLE_BRANCH}" == "master" ]; then
52-
./gradlew -Psigning.keyId=${PGP_KEY_ID} \
146+
./gradlew -g=gradle-home -Psigning.keyId=${PGP_KEY_ID} \
53147
-Psigning.password=${PGP_KEY_PASS} \
54148
-Psigning.secretKeyRingFile=/home/circleci/dd-trace-java/.circleci/secring.gpg \
55149
-PbintrayUser=${BINTRAY_USER} \
56150
-PbintrayApiKey=${BINTRAY_API_KEY} \
57151
-PbuildInfo.build.number=${CIRCLE_BUILD_NUM} \
58152
artifactoryPublish --max-workers=1 --stacktrace --no-daemon
59153
fi
154+
155+
workflows:
156+
version: 2
157+
build_test_deploy:
158+
jobs:
159+
- build
160+
161+
- test_7:
162+
requires:
163+
- build
164+
- test_8:
165+
requires:
166+
- build
167+
# - test_9:
168+
# requires:
169+
# - build
170+
171+
- scan_and_save:
172+
requires:
173+
- build
174+
- test_7
175+
- test_8
176+
# - test_9
177+
178+
- deploy:
179+
requires:
180+
- scan_and_save
181+
filters:
182+
branches:
183+
only: master

buildSrc/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ dependencies {
1212
compile group: 'org.eclipse.aether', name: 'aether-transport-http', version: '1.1.0'
1313
compile group: 'org.apache.maven', name: 'maven-aether-provider', version: '3.3.9'
1414

15-
compile group: 'com.google.guava', name: 'guava', version: '23.0'
15+
compile group: 'com.google.guava', name: 'guava', version: '20.0'
1616
compile group: 'org.ow2.asm', name: 'asm-all', version: '5.2'
1717
}

dd-java-agent-ittests/dd-java-agent-ittests.gradle

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@ description = 'dd-java-agent-ittests'
55
evaluationDependsOn(':dd-java-agent:tooling')
66
compileTestJava.dependsOn tasks.getByPath(':dd-java-agent:tooling:testClasses')
77

8+
if (!JavaVersion.current().isJava8Compatible()) {
9+
sourceSets {
10+
test {
11+
groovy {
12+
// These classes use Ratpack which requires Java 8.
13+
exclude '**/TestHttpServer.groovy', '**/ApacheHttpClientTest.groovy'
14+
}
15+
}
16+
}
17+
}
18+
819
dependencies {
920
testCompile project(':dd-trace-api')
1021
testCompile project(':dd-trace-ot')
@@ -20,10 +31,10 @@ dependencies {
2031
testCompile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.4.2'
2132
testCompile group: 'org.mongodb', name: 'mongodb-driver-async', version: '3.4.2'
2233
// run embeded mongodb for integration testing
23-
testCompile group: 'de.flapdoodle.embed', name: 'de.flapdoodle.embed.mongo', version: '2.0.0'
34+
testCompile group: 'de.flapdoodle.embed', name: 'de.flapdoodle.embed.mongo', version: '1.50.5'
2435

25-
testCompile group: 'org.eclipse.jetty', name: 'jetty-server', version: '9.4.1.v20170120'
26-
testCompile group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '9.4.1.v20170120'
36+
testCompile group: 'org.eclipse.jetty', name: 'jetty-server', version: '8.2.0.v20160908'
37+
testCompile group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '8.2.0.v20160908'
2738
testCompile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: '8.0.41'
2839
testCompile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper', version: '8.0.41'
2940
// note: aws transitively pulls in apache-httpclient, which we also test against:
@@ -39,8 +50,8 @@ dependencies {
3950

4051
// JDBC tests:
4152
testCompile group: 'com.h2database', name: 'h2', version: '1.4.196'
42-
testCompile group: 'org.hsqldb', name: 'hsqldb', version: '2.4.0'
43-
testCompile group: 'org.apache.derby', name: 'derby', version: '10.14.1.0'
53+
testCompile group: 'org.hsqldb', name: 'hsqldb', version: '2.3.+'
54+
testCompile group: 'org.apache.derby', name: 'derby', version: '10.12.1.1'
4455
}
4556

4657
test {

dd-java-agent/dd-java-agent.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ shadowJar {
8686
}
8787

8888
dependencies {
89-
exclude(dependency('org.projectlombok:lombok:1.16.18'))
89+
exclude(dependency('org.projectlombok:lombok:1.16.20'))
9090
}
9191
}
9292

dd-java-agent/instrumentation/datastax-cassandra-3.2/datastax-cassandra-3.2.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,17 @@ versionScan {
3131

3232
apply from: "${rootDir}/gradle/java.gradle"
3333

34+
if (!JavaVersion.current().isJava8Compatible()) {
35+
sourceSets {
36+
test {
37+
groovy {
38+
// These classes use Cassandra 3 which requires Java 8.
39+
exclude '**/CassandraClientTest.groovy'
40+
}
41+
}
42+
}
43+
}
44+
3445
dependencies {
3546
compileOnly group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.2.0'
3647
compile('io.opentracing.contrib:opentracing-cassandra-driver:0.0.3-RC1') {

dd-java-agent/instrumentation/okhttp-3/okhttp-3.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,17 @@ versionScan {
1414

1515
apply from: "${rootDir}/gradle/java.gradle"
1616

17+
if (!JavaVersion.current().isJava8Compatible()) {
18+
sourceSets {
19+
test {
20+
groovy {
21+
// These classes use Ratpack which requires Java 8.
22+
exclude '**/OkHttp3Test.groovy'
23+
}
24+
}
25+
}
26+
}
27+
1728
dependencies {
1829
compileOnly group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.0.0'
1930
compile('io.opentracing.contrib:opentracing-okhttp3:0.1.0-RC1') {

dd-trace-ot/dd-trace-ot.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@ whitelistedInstructionClasses += whitelistedBranchClasses += [
1616
'datadog.trace.api.DDTags',
1717
]
1818

19+
if (!JavaVersion.current().isJava8Compatible()) {
20+
sourceSets {
21+
test {
22+
groovy {
23+
// These classes use Ratpack which requires Java 8.
24+
exclude 'datadog/trace/api/writer/DDApiTest.groovy'
25+
}
26+
}
27+
}
28+
}
29+
1930
dependencies {
2031
compile project(':dd-trace-api')
2132
compile deps.opentracing

examples/dropwizard-mongo-client/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip

examples/rest-spark/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip

examples/spring-boot-jdbc/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip

gradle/checkstyle.gradle

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,15 @@ tasks.withType(Test) {
4949
mustRunAfter checkstyleTasks
5050
}
5151

52-
apply plugin: 'com.github.sherter.google-java-format'
52+
if (!JavaVersion.current().isJava9Compatible()) {
53+
// Verification seems broken on Java 9.
54+
apply plugin: 'com.github.sherter.google-java-format'
5355

54-
tasks.withType(Checkstyle) {
55-
mustRunAfter verifyGoogleJavaFormat
56+
googleJavaFormat {
57+
exclude 'gradle-home'
58+
}
59+
60+
tasks.withType(Checkstyle) {
61+
mustRunAfter verifyGoogleJavaFormat
62+
}
5663
}

gradle/dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ext {
66
opentracing: '0.31.0',
77

88
slf4j : "1.7.25",
9-
guava : "23.0",
9+
guava : "20.0",
1010
jackson : "2.9.3",
1111

1212
spock : "1.0-groovy-$spockGroovyVer",

gradle/java.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ targetCompatibility = 1.7
77
apply plugin: "io.franzbecker.gradle-lombok"
88

99
lombok { // optional: values below are the defaults
10-
version = "1.16.18"
11-
sha256 = "9d957f572386b9e257093a45b148f9b411cff80d9efd55eaf6fca27002d2e4d9"
10+
version = "1.16.20"
11+
sha256 = "c5178b18caaa1a15e17b99ba5e4023d2de2ebc18b58cde0f5a04ca4b31c10e6d"
1212
}
1313

1414
apply plugin: "eclipse"
@@ -36,7 +36,7 @@ repositories {
3636

3737
dependencies {
3838
testCompile deps.junit
39-
testCompile group: 'org.assertj', name: 'assertj-core', version: '3.6.2'
39+
testCompile group: 'org.assertj', name: 'assertj-core', version: '2.9.+'
4040
testCompile group: 'org.mockito', name: 'mockito-core', version: '2.7.22'
4141

4242
testCompile deps.spock

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip

0 commit comments

Comments
 (0)