apply plugin: 'com.github.kt3k.coveralls' description = "gRPC: All" buildscript { repositories { maven { // The google mirror is less flaky than mavenCentral() url "https://maven-central.storage-download.googleapis.com/repos/central/data/" } } dependencies { classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1' } } def subprojects = [ project(':grpc-auth'), project(':grpc-core'), project(':grpc-context'), project(':grpc-netty'), project(':grpc-okhttp'), project(':grpc-protobuf'), project(':grpc-protobuf-lite'), project(':grpc-protobuf-nano'), project(':grpc-stub'), project(':grpc-testing'), ] for (subproject in rootProject.subprojects) { if (subproject == project) { continue } evaluationDependsOn(subproject.path) } dependencies { compile subprojects.minus(project(':grpc-protobuf-lite')) } javadoc { classpath = files(subprojects.collect { subproject -> subproject.javadoc.classpath }) for (subproject in subprojects) { if (subproject == project) { continue; } source subproject.javadoc.source options.links subproject.javadoc.options.links.toArray(new String[0]) } } task jacocoMerge(type: JacocoMerge) { dependsOn(subprojects.jacocoTestReport.dependsOn) mustRunAfter(subprojects.jacocoTestReport.mustRunAfter) destinationFile = file("${buildDir}/jacoco/test.exec") executionData = files(subprojects.jacocoTestReport.executionData) .plus(project(':grpc-interop-testing').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, exclude: [ '**/io/grpc/okhttp/internal/**' ]) }) } coveralls { sourceDirs = subprojects.sourceSets.main.allSource.srcDirs.flatten() } tasks.coveralls { dependsOn(jacocoTestReport) }