264 lines
6.5 KiB
YAML
264 lines
6.5 KiB
YAML
version: 2
|
|
|
|
defaults: &defaults
|
|
working_directory: ~/dd-trace-java
|
|
resource_class: large
|
|
docker:
|
|
- 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
|
|
|
|
|
|
jobs:
|
|
build:
|
|
<<: *defaults
|
|
docker:
|
|
- image: circleci/openjdk:8-jdk
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
<<: *cache_keys
|
|
|
|
- run:
|
|
name: Build Project
|
|
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew clean compileTestGroovy compileTestScala compileTestJava check -x test -x traceAgentTest --build-cache --parallel --stacktrace --no-daemon --max-workers=6
|
|
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- workspace
|
|
|
|
- save_cache:
|
|
key: dd-trace-java-{{ checksum "dd-trace-java.gradle" }}-{{ .Branch }}-{{ .Revision }}
|
|
paths: ~/.gradle
|
|
background: true
|
|
|
|
|
|
default_test_job: &default_test_job
|
|
<<: *defaults
|
|
|
|
steps:
|
|
- checkout
|
|
|
|
- run:
|
|
name: Install Additional JVM
|
|
command: |
|
|
if [ "${INSTALL_ZULU}" != "" ]; then
|
|
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0x219BD9C9
|
|
echo 'deb http://repos.azulsystems.com/debian stable main' | sudo tee -a /etc/apt/sources.list.d/zulu.list
|
|
sudo apt-get update
|
|
sudo apt-get install $INSTALL_ZULU
|
|
fi
|
|
|
|
- attach_workspace:
|
|
at: .
|
|
|
|
- restore_cache:
|
|
<<: *cache_keys
|
|
|
|
- run:
|
|
name: Run Tests
|
|
command: GRADLE_OPTS="-Dorg.gradle.jvmargs=-Xmx2G -Xms512M" ./gradlew $TEST_TASK --build-cache --parallel --stacktrace --no-daemon --max-workers=3
|
|
|
|
- run:
|
|
name: Collect Artifacts
|
|
when: always
|
|
command: .circleci/collect_artifacts.sh
|
|
|
|
- store_test_results:
|
|
path: ./reports
|
|
|
|
- store_artifacts:
|
|
path: ./artifacts
|
|
|
|
test_7:
|
|
<<: *default_test_job
|
|
environment:
|
|
- JAVA7_HOME: /usr/lib/jvm/zulu-7-amd64
|
|
- TEST_TASK: testJava7
|
|
- INSTALL_ZULU: zulu-7
|
|
|
|
test_8:
|
|
<<: *default_test_job
|
|
environment:
|
|
- JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
|
|
- TEST_TASK: test
|
|
|
|
test_9:
|
|
<<: *default_test_job
|
|
environment:
|
|
- JAVA9_HOME: /usr/lib/jvm/zulu-9-amd64
|
|
- TEST_TASK: testJava9
|
|
- INSTALL_ZULU: zulu-9
|
|
|
|
|
|
agent_integration_tests:
|
|
<<: *defaults
|
|
docker:
|
|
- image: circleci/openjdk:8-jdk
|
|
- image: datadog/docker-dd-agent
|
|
env:
|
|
- DD_APM_ENABLED=true
|
|
- DD_BIND_HOST=0.0.0.0
|
|
- DD_API_KEY=invalid_key_but_this_is_fine
|
|
steps:
|
|
- checkout
|
|
|
|
- attach_workspace:
|
|
at: .
|
|
|
|
- restore_cache:
|
|
# 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
|
|
|
|
- run:
|
|
name: Run Trace Agent Tests
|
|
command: ./gradlew traceAgentTest --build-cache --parallel --stacktrace --no-daemon --max-workers=6
|
|
|
|
- run:
|
|
name: Collect Artifacts
|
|
when: always
|
|
command: .circleci/collect_artifacts.sh
|
|
|
|
- store_test_results:
|
|
path: ./reports
|
|
|
|
scan_versions:
|
|
<<: *defaults
|
|
steps:
|
|
- checkout
|
|
|
|
- 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:
|
|
name: Verify Version Scan
|
|
command: ./gradlew verifyVersionScan --parallel --stacktrace --no-daemon --max-workers=6
|
|
|
|
- run:
|
|
name: Collect Artifacts
|
|
when: always
|
|
command: .circleci/collect_artifacts.sh
|
|
|
|
- store_test_results:
|
|
path: ./reports
|
|
|
|
- store_artifacts:
|
|
path: ./artifacts
|
|
|
|
- save_cache:
|
|
key: dd-trace-java-version-scan-{{ checksum "dd-trace-java.gradle" }}
|
|
paths: ~/.gradle
|
|
|
|
publish: &publish
|
|
<<: *defaults
|
|
steps:
|
|
- checkout
|
|
|
|
- attach_workspace:
|
|
at: .
|
|
|
|
- restore_cache:
|
|
<<: *cache_keys
|
|
|
|
- run:
|
|
name: Decode Signing Key
|
|
command: echo $PGP_KEY_FILE | base64 --decode > /home/circleci/dd-trace-java/.circleci/secring.gpg
|
|
|
|
- deploy:
|
|
name: Publish master to Artifactory
|
|
command: |
|
|
./gradlew -Psigning.keyId=${PGP_KEY_ID} \
|
|
-Psigning.password=${PGP_KEY_PASS} \
|
|
-Psigning.secretKeyRingFile=/home/circleci/dd-trace-java/.circleci/secring.gpg \
|
|
-PbintrayUser=${BINTRAY_USER} \
|
|
-PbintrayApiKey=${BINTRAY_API_KEY} \
|
|
-PbuildInfo.build.number=${CIRCLE_BUILD_NUM} \
|
|
artifactoryPublish --max-workers=1 --build-cache --stacktrace --no-daemon
|
|
|
|
publish_master:
|
|
<<: *publish
|
|
publish_tag:
|
|
<<: *publish
|
|
|
|
workflows:
|
|
version: 2
|
|
build_test_deploy:
|
|
jobs:
|
|
- build:
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
|
|
- test_7:
|
|
requires:
|
|
- build
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- test_8:
|
|
requires:
|
|
- build
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- test_9:
|
|
requires:
|
|
- build
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
|
|
- agent_integration_tests:
|
|
requires:
|
|
- build
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
|
|
- scan_versions:
|
|
requires:
|
|
- build
|
|
filters:
|
|
branches:
|
|
ignore: master
|
|
|
|
- publish_master:
|
|
requires:
|
|
- test_7
|
|
- test_8
|
|
- test_9
|
|
- agent_integration_tests
|
|
filters:
|
|
branches:
|
|
only: master
|
|
tags:
|
|
ignore: /.*/
|
|
|
|
- publish_tag:
|
|
requires:
|
|
- test_7
|
|
- test_8
|
|
- test_9
|
|
- agent_integration_tests
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v.*/
|