Skip to content

Commit d8b08b0

Browse files
authored
Add test coverage report (#599)
1 parent 7b4fc94 commit d8b08b0

File tree

5 files changed

+83
-4
lines changed

5 files changed

+83
-4
lines changed

.buildkite/pipeline.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ steps:
88
agents:
99
queue: "workers"
1010
docker: "*"
11-
command: "./gradlew --no-daemon test"
11+
command: "./gradlew --no-daemon test jacocoTestReport"
12+
artifact_paths:
13+
- "build/reports/jacoco/test/*.xml"
1214
timeout_in_minutes: 15
1315
retry:
1416
automatic:
@@ -49,3 +51,17 @@ steps:
4951
run: unit-test-docker-sticky-off
5052
config: docker/buildkite/docker-compose.yaml
5153
- wait
54+
55+
- label: ":java: Report test coverage"
56+
agents:
57+
queue: "workers"
58+
docker: "*"
59+
command: ".buildkite/scripts/coverage.sh"
60+
retry:
61+
automatic:
62+
- exit_status: "*"
63+
limit: 3
64+
plugins:
65+
- docker-compose#v3.0.0:
66+
run: test-coverage-report
67+
config: docker/buildkite/docker-compose.yaml

.buildkite/scripts/coverage.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/sh
2+
3+
set -ex
4+
5+
# download cover files from all the tests
6+
mkdir -p build/reports/jacoco/test
7+
buildkite-agent artifact download "build/reports/jacoco/test/jacocoTestReport.xml" . --step ":java: Unit test with test services" --build "$BUILDKITE_BUILD_ID"
8+
9+
echo "download complete"
10+
11+
# report coverage
12+
./gradlew coverallsJacoco
13+
14+
# cleanup
15+
rm -rf ./build

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Java framework for Cadence [![Build Status](https://badge.buildkite.com/0c96b8b74c0921208e898c10a602e2fe9ecb7641c2befee0e7.svg?theme=github&branch=master)](https://buildkite.com/uberopensource/cadence-java-client) [![Javadocs](https://www.javadoc.io/badge/com.uber.cadence/cadence-client.svg)](https://www.javadoc.io/doc/com.uber.cadence/cadence-client)
1+
# Java framework for Cadence [![Build Status](https://badge.buildkite.com/0c96b8b74c0921208e898c10a602e2fe9ecb7641c2befee0e7.svg?theme=github&branch=master)](https://buildkite.com/uberopensource/cadence-java-client) [![Javadocs](https://www.javadoc.io/badge/com.uber.cadence/cadence-client.svg)](https://www.javadoc.io/doc/com.uber.cadence/cadence-client) [![Coverage Status](https://coveralls.io/repos/github/uber/cadence-java-client/badge.svg)](https://coveralls.io/github/uber/cadence-java-client)
22

33

44
[Cadence](https://github.com/uber/cadence) is a distributed, scalable, durable, and highly available orchestration engine we developed at Uber Engineering to execute asynchronous long-running business logic in a scalable and resilient way.

build.gradle

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@ buildscript {
66

77
plugins {
88
id "com.github.hierynomus.license" version"0.15.0"
9+
id 'com.github.nbaztec.coveralls-jacoco' version '1.2.11'
910
id 'com.github.sherter.google-java-format' version '0.8'
1011
id 'net.ltgt.errorprone' version '1.1.1'
1112
id 'java-library'
13+
id 'jacoco'
1214
}
1315

1416
repositories {
1517
maven {
1618
url 'https://plugins.gradle.org/m2/'
1719
}
1820
mavenCentral()
21+
jcenter()
1922
}
2023

2124
apply plugin: 'maven'
@@ -272,4 +275,19 @@ uploadArchives {
272275
}
273276
}
274277

275-
//logging.captureStandardOutput LogLevel.INFO
278+
jacoco {
279+
toolVersion = "0.8.2"
280+
}
281+
282+
jacocoTestReport {
283+
reports {
284+
xml.enabled = true // coveralls plugin depends on xml format report
285+
html.enabled = true
286+
}
287+
288+
afterEvaluate {
289+
classDirectories.setFrom(files(classDirectories.files.collect {
290+
fileTree(dir: it, excludes: ['com/uber/cadence/shadower/*.class', 'com/uber/cadence/*.class'])
291+
}))
292+
}
293+
}

docker/buildkite/docker-compose.yaml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,34 @@ services:
9292
- "USER=unittest"
9393
- "USE_DOCKER_SERVICE=false"
9494
volumes:
95-
- "../../:/cadence-java-client"
95+
- "../../:/cadence-java-client"
96+
97+
test-coverage-report:
98+
build:
99+
context: ../../
100+
dockerfile: ./docker/buildkite/Dockerfile
101+
command: "./gradlew --no-daemon test"
102+
environment:
103+
- "USER=unittest"
104+
- "USE_DOCKER_SERVICE=false"
105+
- CI
106+
- BUILDKITE
107+
- BUILDKITE_AGENT_ACCESS_TOKEN
108+
- BUILDKITE_JOB_ID
109+
- BUILDKITE_BUILD_ID
110+
- BUILDKITE_BUILD_NUMBER
111+
- BUILDKITE_BRANCH
112+
- BUILDKITE_BUILD_URL
113+
- BUILDKITE_PROJECT_SLUG
114+
- BUILDKITE_COMMIT
115+
- BUILDKITE_PULL_REQUEST
116+
- BUILDKITE_TAG
117+
- BUILDKITE_REPO
118+
- BUILDKITE_BUILD_CREATOR
119+
- BUILDKITE_BUILD_CREATOR_EMAIL
120+
- BUILDKITE_BUILD_CREATOR_TEAMS
121+
- BUILDKITE_PULL_REQUEST_REPO
122+
- COVERALLS_REPO_TOKEN
123+
volumes:
124+
- "../../:/cadence-java-client"
125+
- /usr/bin/buildkite-agent:/usr/bin/buildkite-agent

0 commit comments

Comments
 (0)