Files
apollo/gradle/quality-gate.gradle
T
2018-08-26 14:59:34 +01:00

72 lines
1.9 KiB
Groovy

apply plugin: 'jacoco'
def testedProjects() {
subprojects.findAll { subproject -> subproject.plugins.hasPlugin('java') || subproject.plugins.hasPlugin('kotlin') }
}
gradle.projectsEvaluated {
configure(testedProjects()) {
apply plugin: 'jacoco'
jacoco {
toolVersion = '0.8.1'
}
jacocoTestReport {
sourceDirectories = files(sourceSets.main.allSource.srcDirs)
classDirectories = files(sourceSets.main.output)
}
test {
reports {
junitXml.enabled = true
html.enabled = false
}
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpDir = file("$buildDir/jacoco/classpathdumps")
}
}
}
task jacocoTestReport(type: JacocoReport) {
def tests = []
def sourceDirs = files()
def classDirs = files()
def execData = files()
reports {
xml.enabled = true
html.enabled = false
}
testedProjects().each { subproject ->
sourceDirs += files(subproject.sourceSets.main.allSource.srcDirs)
classDirs += files(subproject.sourceSets.main.output)
execData += files(subproject.tasks.jacocoTestReport.executionData.findAll {
it.exists()
})
tests += subproject.tasks.test
}
dependsOn tests
sourceDirectories = sourceDirs
classDirectories = classDirs
executionData = execData
}
sonarqube {
properties {
property "sonar.organization", "apollo-rsps"
property "sonar.projectKey", "apollo:org.apollo"
property "sonar.projectName", "Apollo RSPS"
property "sonar.kotlin.file.suffixes", ".kt,.kts"
}
}
project.tasks["sonarqube"].dependsOn(jacocoTestReport)
}