Permalink
Fetching contributors…
Cannot retrieve contributors at this time
154 lines (125 sloc) 4.27 KB
apply plugin: 'com.github.mjdetullio.gradle.coverity'
apply plugin: 'com.github.ben-manes.versions'
apply plugin: 'com.github.kt3k.coveralls'
apply plugin: 'com.gradle.build-scan'
apply plugin: 'jacoco'
buildscript {
apply from: "${rootDir}/gradle/dependencies.gradle"
repositories {
maven { url "http://repo.spring.io/plugins-release" }
gradlePluginPortal()
mavenCentral()
jcenter()
}
dependencies {
classpath gradlePlugins.values()
}
}
buildScan {
licenseAgree = 'yes'
licenseAgreementUrl = 'https://gradle.com/terms-of-service'
}
task testReport(type: TestReport, group: 'Build') {
description = 'Generates an aggregate test report'
destinationDir = file("${buildDir}/reports/allTests")
}
allprojects {
apply from: "${rootDir}/gradle/eclipse.gradle"
repositories {
jcenter()
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
subprojects {
apply plugin: 'com.github.ethankhall.semantic-versioning'
apply plugin: 'net.ltgt.errorprone'
apply plugin: 'eclipse'
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'osgi'
apply from: "${rootDir}/gradle/publish.gradle"
apply from: "${rootDir}/gradle/codeQuality.gradle"
apply from: "${rootDir}/gradle/dependencies.gradle"
apply from: "${rootDir}/gradle/objectLayout.gradle"
if (JavaVersion.current().isJava9Compatible()) {
tasks.uploadArchives.enabled = false
}
sourceCompatibility = JavaVersion.VERSION_1_8
group = 'com.github.ben-manes.caffeine'
version.with {
major = 2 // incompatible API changes
minor = 7 // backwards-compatible additions
patch = 0 // backwards-compatible bug fixes
releaseBuild = rootProject.hasProperty('release')
}
archivesBaseName = path[1..-1].replaceAll(':', '-').toLowerCase()
dependencies {
testCompile libraries.guava
testCompile testLibraries.mockito
testCompile testLibraries.hamcrest
testCompile testLibraries.awaitility
testCompile testLibraries.osgiCompile
testRuntime testLibraries.osgiRuntime
}
configurations {
testArtifacts
}
tasks.withType(Test) {
if (!it.name.startsWith('slow')) {
rootProject.testReport.reportOn it
}
it.dependsOn('jar')
// ensure tasks don't overwrite the default report directories used by the 'test' task
reports.html.destination = file("${buildDir}/reports/${name}")
reports.junitXml.destination = file("${buildDir}/reports/${name}/results")
binResultsDir = file("${buildDir}/reports/${name}/results/binary/${name}")
}
task testJar(type: Jar, group: 'Build') {
description = 'Assembles a jar archive containing the test classes.'
baseName = "${archivesBaseName}-test"
from sourceSets.test.output
}
artifacts {
testArtifacts testJar
}
if (project != project(':caffeine')) {
javadoc.options.linksOffline(
"https://static.javadoc.io/${group}/caffeine/${version}/",
"${project(':caffeine').buildDir}/docs/javadoc/",
)
javadoc.dependsOn(project(':caffeine').javadoc)
}
}
// Only report code coverage for projects that are distributed
def publishedProjects = subprojects.findAll { it.path != ':simulator' }
task jacocoMerge(type: JacocoMerge) {
publishedProjects.each { subproject ->
executionData subproject.tasks.withType(Test)
}
doFirst {
executionData = files(executionData.findAll { it.exists() })
}
}
task jacocoRootReport(type: JacocoReport, group: 'Coverage reports') {
description = 'Generates an aggregate report from all subprojects'
dependsOn publishedProjects.test, jacocoMerge
additionalSourceDirs = files(publishedProjects.sourceSets.main.allSource.srcDirs)
sourceDirectories = files(publishedProjects.sourceSets.main.allSource.srcDirs)
classDirectories = files(publishedProjects.sourceSets.main.output)
executionData jacocoMerge.destinationFile
reports {
html.enabled = true // human readable
xml.enabled = true // required by coveralls
}
}
coveralls {
sourceDirs = publishedProjects.sourceSets.main.allSource.srcDirs.flatten()
jacocoReportPath = "${buildDir}/reports/jacoco/jacocoRootReport/jacocoRootReport.xml"
}
tasks.coveralls {
group = 'Coverage reports'
description = 'Uploads the aggregated coverage report to Coveralls'
dependsOn jacocoRootReport
onlyIf { System.env.'CI' && !JavaVersion.current().isJava9Compatible() }
}