apply plugin: 'com.github.kt3k.coveralls' description = "OpenCensus All" buildscript { repositories { mavenCentral() } dependencies { classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1' } } def subprojects = [ project(':opencensus-api'), project(':opencensus-impl-core'), project(':opencensus-impl'), project(':opencensus-impl-lite'), project(':opencensus-testing'), project(':opencensus-contrib-agent'), project(':opencensus-contrib-grpc-util'), project(':opencensus-contrib-grpc-metrics'), project(':opencensus-contrib-zpages'), project(':opencensus-exporter-trace-logging'), project(':opencensus-exporter-trace-stackdriver'), project(':opencensus-exporter-trace-zipkin'), project(':opencensus-exporter-stats-signalfx'), project(':opencensus-exporter-stats-stackdriver'), ] // A subset of subprojects for which we want to publish javadoc. def subprojects_javadoc = [ project(':opencensus-api'), project(':opencensus-testing'), project(':opencensus-contrib-agent'), project(':opencensus-contrib-grpc-util'), project(':opencensus-contrib-grpc-metrics'), project(':opencensus-contrib-zpages'), project(':opencensus-exporter-trace-logging'), project(':opencensus-exporter-trace-stackdriver'), project(':opencensus-exporter-trace-zipkin'), project(':opencensus-exporter-stats-signalfx'), project(':opencensus-exporter-stats-stackdriver'), ] for (subproject in rootProject.subprojects) { if (subproject == project) { continue } evaluationDependsOn(subproject.path) } dependencies { compile subprojects } javadoc { classpath = files(subprojects_javadoc.collect { subproject -> subproject.javadoc.classpath }) for (subproject in subprojects_javadoc) { if (subproject == project) { continue; } source subproject.javadoc.source options.links subproject.javadoc.options.links.toArray(new String[0]) } exclude 'io/opencensus/internal/**' } task jacocoMerge(type: JacocoMerge) { dependsOn(subprojects.jacocoTestReport.dependsOn) mustRunAfter(subprojects.jacocoTestReport.mustRunAfter) destinationFile = file("${buildDir}/jacoco/test.exec") executionData = files(subprojects.jacocoTestReport.executionData) .filter { f -> f.exists() } } jacocoTestReport { dependsOn(jacocoMerge) reports { xml.enabled = true html.enabled = true } additionalSourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs) sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs) classDirectories = files(subprojects.sourceSets.main.output) classDirectories = files(classDirectories.files.collect { fileTree(dir: it) }) } coveralls { sourceDirs = subprojects.sourceSets.main.allSource.srcDirs.flatten() } tasks.coveralls { dependsOn(jacocoTestReport) }