Merge pull request #201 from DataDog/tyler/java9-ci

Reenable java 7 and 9 CI
This commit is contained in:
Tyler Benson 2018-01-23 16:02:38 -05:00 committed by GitHub
commit 930b6e9f58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 75 additions and 88 deletions

View File

@ -6,14 +6,33 @@ defaults: &defaults
docker: docker:
- image: circleci/openjdk:8 - image: circleci/openjdk:8
cache_keys: &cache_keys
# Reset the cache approx every release
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" }}
- dd-trace-java
test_job: &test_job test_job: &test_job
steps: steps:
- attach_workspace: - checkout
at: .
- restore_cache:
<<: *cache_keys
- run:
name: Fix EC parameters error # (ref https://github.com/travis-ci/travis-ci/issues/8503)
command: |
if [ "${CIRCLE_JOB}" == "test_7" ]; then
wget "https://downloads.bouncycastle.org/java/bcprov-ext-jdk15on-158.jar" -O "${JAVA_HOME}"/jre/lib/ext/bcprov-ext-jdk15on-158.jar && \
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" | tee -a /etc/java-7-openjdk/security/java.security
fi
- run: - run:
name: Run Tests name: Run Tests
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew -g=gradle-home test --parallel --stacktrace --no-daemon --max-workers=3 command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew test --parallel --stacktrace --no-daemon --max-workers=3
- run: - run:
name: Save Artifacts to (project-root)/build name: Save Artifacts to (project-root)/build
@ -26,10 +45,6 @@ test_job: &test_job
- store_artifacts: - store_artifacts:
path: build path: build
- persist_to_workspace:
root: .
paths: .
jobs: jobs:
build: build:
<<: *defaults <<: *defaults
@ -40,57 +55,22 @@ jobs:
- checkout - checkout
- restore_cache: - restore_cache:
# Reset the cache approx every release <<: *cache_keys
keys:
- dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}-verified
- 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" }}
- dd-trace-java
- run: - run:
name: Build Project name: Build Project
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew -g=gradle-home clean check -x test --stacktrace --no-daemon command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew clean check -x test --stacktrace --no-daemon
- 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-home paths: ~/.gradle
background: true background: true
- persist_to_workspace: test_7:
root: . <<: *defaults
paths: . <<: *test_job
docker:
# test_7: - image: openjdk:7-jdk
# <<: *defaults
# docker:
# - image: openjdk:7-jdk
#
# steps:
# - attach_workspace:
# at: .
#
# - run:
# name: Fix EC parameters error # (ref https://github.com/travis-ci/travis-ci/issues/8503)
# command: |
# wget "https://downloads.bouncycastle.org/java/bcprov-ext-jdk15on-158.jar" -O "${JAVA_HOME}"/jre/lib/ext/bcprov-ext-jdk15on-158.jar && \
# 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" | tee -a /etc/java-7-openjdk/security/java.security
#
# - run:
# name: Run Tests
# command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew -g=gradle-home test --parallel --stacktrace --no-daemon --max-workers=3
#
# - run:
# name: Save Artifacts to (project-root)/build
# when: always
# command: .circleci/save_artifacts.sh
#
# - store_test_results:
# path: build/test-results
#
# - store_artifacts:
# path: build
test_8: test_8:
<<: *defaults <<: *defaults
@ -98,21 +78,26 @@ jobs:
docker: docker:
- image: circleci/openjdk:8-jdk - image: circleci/openjdk:8-jdk
# test_9: test_9:
# <<: *defaults <<: *defaults
# <<: *test_job <<: *test_job
# docker: docker:
# - image: circleci/openjdk:9-jdk - image: circleci/openjdk:9-jdk
scan_and_save: scan_versions:
<<: *defaults <<: *defaults
steps: steps:
- attach_workspace: - checkout
at: .
- restore_cache:
# Reset the cache approx every release
keys:
- dd-trace-java-version-scan-{{ checksum "dd-trace-java.gradle" }}
- dd-trace-java-version-scan
- run: - run:
name: Verify Version Scan name: Verify Version Scan
command: ./gradlew -g=gradle-home verifyVersionScan --parallel --stacktrace --no-daemon command: ./gradlew verifyVersionScan --parallel --stacktrace --no-daemon
- run: - run:
name: Save Artifacts to (project-root)/build name: Save Artifacts to (project-root)/build
@ -126,14 +111,16 @@ jobs:
path: build path: build
- save_cache: - save_cache:
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}-verified key: dd-trace-java-version-scan-{{ checksum "dd-trace-java.gradle" }}
paths: gradle-home paths: ~/.gradle
deploy: deploy:
<<: *defaults <<: *defaults
steps: steps:
- attach_workspace: - checkout
at: .
- restore_cache:
<<: *cache_keys
- run: - run:
name: Decode Signing Key name: Decode Signing Key
@ -143,7 +130,7 @@ jobs:
name: Publish master to Artifactory name: Publish master to Artifactory
command: | command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then if [ "${CIRCLE_BRANCH}" == "master" ]; then
./gradlew -g=gradle-home -Psigning.keyId=${PGP_KEY_ID} \ ./gradlew -Psigning.keyId=${PGP_KEY_ID} \
-Psigning.password=${PGP_KEY_PASS} \ -Psigning.password=${PGP_KEY_PASS} \
-Psigning.secretKeyRingFile=/home/circleci/dd-trace-java/.circleci/secring.gpg \ -Psigning.secretKeyRingFile=/home/circleci/dd-trace-java/.circleci/secring.gpg \
-PbintrayUser=${BINTRAY_USER} \ -PbintrayUser=${BINTRAY_USER} \
@ -158,26 +145,25 @@ workflows:
jobs: jobs:
- build - build
# - test_7: - test_7:
# requires: requires:
# - build - build
- test_8: - test_8:
requires: requires:
- build - build
# - test_9: - test_9:
# requires: requires:
# - build - build
- scan_versions:
- scan_and_save:
requires: requires:
- build - build
# - test_7
- test_8
# - test_9
- deploy: - deploy:
requires: requires:
- scan_and_save - test_7
- test_8
- test_9
- scan_versions
filters: filters:
branches: branches:
only: master only: master

View File

@ -5,11 +5,11 @@ description = 'dd-java-agent-ittests'
evaluationDependsOn(':dd-java-agent:tooling') evaluationDependsOn(':dd-java-agent:tooling')
compileTestJava.dependsOn tasks.getByPath(':dd-java-agent:tooling:testClasses') compileTestJava.dependsOn tasks.getByPath(':dd-java-agent:tooling:testClasses')
if (!JavaVersion.current().isJava8Compatible()) { if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
sourceSets { sourceSets {
test { test {
groovy { groovy {
// These classes use Ratpack which requires Java 8. // These classes use Ratpack which requires Java 8. (Currently also incompatible with Java 9.)
exclude '**/TestHttpServer.groovy', '**/ApacheHttpClientTest.groovy' exclude '**/TestHttpServer.groovy', '**/ApacheHttpClientTest.groovy'
} }
} }

View File

@ -31,11 +31,11 @@ versionScan {
apply from: "${rootDir}/gradle/java.gradle" apply from: "${rootDir}/gradle/java.gradle"
if (!JavaVersion.current().isJava8Compatible()) { if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
sourceSets { sourceSets {
test { test {
groovy { groovy {
// These classes use Cassandra 3 which requires Java 8. // These classes use Cassandra 3 which requires Java 8. (Currently incompatible with Java 9.)
exclude '**/CassandraClientTest.groovy' exclude '**/CassandraClientTest.groovy'
} }
} }

View File

@ -14,11 +14,11 @@ versionScan {
apply from: "${rootDir}/gradle/java.gradle" apply from: "${rootDir}/gradle/java.gradle"
if (!JavaVersion.current().isJava8Compatible()) { if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
sourceSets { sourceSets {
test { test {
groovy { groovy {
// These classes use Ratpack which requires Java 8. // These classes use Ratpack which requires Java 8. (Currently also incompatible with Java 9.)
exclude '**/OkHttp3Test.groovy' exclude '**/OkHttp3Test.groovy'
} }
} }

View File

@ -50,7 +50,7 @@ public final class FilterChain3Instrumentation implements Instrumenter {
"io.opentracing.contrib.web.servlet.filter.ServletFilterSpanDecorator$1", "io.opentracing.contrib.web.servlet.filter.ServletFilterSpanDecorator$1",
"io.opentracing.contrib.web.servlet.filter.TracingFilter", "io.opentracing.contrib.web.servlet.filter.TracingFilter",
"io.opentracing.contrib.web.servlet.filter.TracingFilter$1", "io.opentracing.contrib.web.servlet.filter.TracingFilter$1",
getClass().getName() + "$FilterChain3Advice$TagSettingAsyncListener")) FilterChain3Advice.class.getName() + "$TagSettingAsyncListener"))
.transform( .transform(
DDAdvice.create() DDAdvice.create()
.advice( .advice(

View File

@ -48,7 +48,7 @@ public final class HttpServlet3Instrumentation implements Instrumenter {
"io.opentracing.contrib.web.servlet.filter.ServletFilterSpanDecorator$1", "io.opentracing.contrib.web.servlet.filter.ServletFilterSpanDecorator$1",
"io.opentracing.contrib.web.servlet.filter.TracingFilter", "io.opentracing.contrib.web.servlet.filter.TracingFilter",
"io.opentracing.contrib.web.servlet.filter.TracingFilter$1", "io.opentracing.contrib.web.servlet.filter.TracingFilter$1",
getClass().getName() + "$HttpServlet3Advice$TagSettingAsyncListener")) HttpServlet3Advice.class.getName() + "$TagSettingAsyncListener"))
.transform( .transform(
DDAdvice.create() DDAdvice.create()
.advice( .advice(

View File

@ -2,6 +2,7 @@ apply from: "${rootDir}/gradle/java.gradle"
dependencies { dependencies {
compile deps.bytebuddy compile deps.bytebuddy
compile deps.bytebuddyagent
compile deps.slf4j compile deps.slf4j
testCompile deps.opentracing testCompile deps.opentracing

View File

@ -17,11 +17,11 @@ whitelistedInstructionClasses += whitelistedBranchClasses += [
'datadog.trace.common.sampling.PrioritySampling' 'datadog.trace.common.sampling.PrioritySampling'
] ]
if (!JavaVersion.current().isJava8Compatible()) { if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
sourceSets { sourceSets {
test { test {
groovy { groovy {
// These classes use Ratpack which requires Java 8. // These classes use Ratpack which requires Java 8. (Currently also incompatible with Java 9.)
exclude 'datadog/trace/api/writer/DDApiTest.groovy' exclude 'datadog/trace/api/writer/DDApiTest.groovy'
} }
} }

View File

@ -35,9 +35,9 @@ ext {
], ],
bytebuddy : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy', version: "${version.bytebuddy}"), bytebuddy : dependencies.create(group: 'net.bytebuddy', name: 'byte-buddy', version: "${version.bytebuddy}"),
autoservice: [ autoservice: [
dependencies.create(group: 'com.google.auto.service', name: 'auto-service', version: '1.0-rc4'), dependencies.create(group: 'com.google.auto.service', name: 'auto-service', version: '1.0-rc3'),
dependencies.create(group: 'com.google.auto', name: 'auto-common', version: '0.3'), dependencies.create(group: 'com.google.auto', name: 'auto-common', version: '0.3'),
dependencies.create(group: 'com.google.guava', name: 'guava', version: '19.0'), dependencies.create(group: 'com.google.guava', name: 'guava', version: "${version.guava}"),
], ],
// Testing // Testing