diff options
Diffstat (limited to 'build.gradle')
-rw-r--r-- | build.gradle | 157 |
1 files changed, 69 insertions, 88 deletions
diff --git a/build.gradle b/build.gradle index 18051ec7d05..f2a5dc8b6d4 100644 --- a/build.gradle +++ b/build.gradle @@ -7,26 +7,38 @@ buildscript { dependencies { // Ordered alphabeticly to avoid duplication classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0' - classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2' + classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.6' classpath 'com.moowork.gradle:gradle-node-plugin:1.2.0' classpath "gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0" classpath 'io.spring.gradle:dependency-management-plugin:1.0.4.RELEASE' - // BuildInfo plugin is broken for 4.7.2 : - // https://github.com/gradle/gradle/issues/4783#issuecomment-386720873 - // https://github.com/JFrogDev/build-info/issues/165 - // https://www.jfrog.com/jira/browse/GAP-288 - // https://www.jfrog.com/jira/browse/GAP-289 - classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.6.2' + classpath 'net.rdrei.android.buildtimetracker:gradle-plugin:0.11.0' + classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.7.5' classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2' } } +// display a summary of task durations at the end of the build +if (project.hasProperty('time-tracker')) { + apply plugin: 'build-time-tracker' + buildtimetracker { + reporters { + summary { + ordered true + threshold 1000 + barstyle 'ascii' + } + } + } +} + // Analyze SonarQube with SonarQube! +ext.versionInSources = version apply plugin: 'org.sonarqube' sonarqube { properties { property 'sonar.projectName', projectTitle + property 'sonar.projectVersion', versionInSources } } @@ -48,7 +60,7 @@ allprojects { } repositories { - def repository = project.hasProperty('cix') ? 'sonarsource-qa' : 'sonarsource' + def repository = project.hasProperty('qa') ? 'sonarsource-qa' : 'sonarsource' maven { url "https://repox.sonarsource.com/${repository}" // The environment variables ARTIFACTORY_PRIVATE_USERNAME and ARTIFACTORY_PRIVATE_PASSWORD are used on QA env (Jenkins) @@ -211,7 +223,7 @@ subprojects { dependency 'org.postgresql:postgresql:42.2.5' dependency 'org.reflections:reflections:0.9.9' dependency 'org.simpleframework:simple:4.1.21' - dependency 'org.sonarsource.orchestrator:sonar-orchestrator:3.21.0.1721' + dependency 'org.sonarsource.orchestrator:sonar-orchestrator:3.22.0.1754' dependency('org.sonarsource:sonar-persistit:3.3.2') { exclude 'commons-logging:commons-logging' } @@ -248,15 +260,30 @@ subprojects { // when needed (see protobuf modules for example) } + test { + jvmArgs '-Dfile.encoding=UTF8' + maxHeapSize = '1G' systemProperty 'java.awt.headless', true - jacoco.enabled = project.hasProperty('jacocoEnabled') testLogging { - exceptionFormat 'full' // log the full stack trace (default is the 1st line of the stack trace) events "skipped", "failed" // verbose log for failed and skipped tests (by default the name of the tests are not logged) + exceptionFormat 'full' // log the full stack trace (default is the 1st line of the stack trace) + } + jacoco { + append = false + enabled = project.hasProperty('jacocoEnabled') + includes = ['com.sonarsource.*', 'org.sonar.*', 'org.sonarsource.*'] + } + if (project.hasProperty('maxParallelTests')) { + // WARNING this is not compatible with jacocoEnabled + maxParallelForks = project.maxParallelTests as int + } + if (project.hasProperty('parallelTests')) { + // WARNING this is not compatible with jacocoEnabled + // See https://guides.gradle.org/performance/#parallel_test_execution + maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 } - if (project.hasProperty('maxParallelTests')) - maxParallelForks = project.maxParallelTests as int + } def protoMainSrc = 'src/main/protobuf' @@ -269,7 +296,7 @@ subprojects { sourceSets.test.proto.srcDir protoTestSrc // in addition to the default 'src/test/proto' protobuf { protoc { - artifact = "com.google.protobuf:protoc:${protobufVersion}" + artifact = "com.google.protobuf:protoc:3.5.1" } } jar { @@ -302,7 +329,7 @@ subprojects { manifest { attributes( 'Version': "${version}", - 'Implementation-Build': 'git rev-parse HEAD'.execute().text.trim(), + 'Implementation-Build': System.getenv('GIT_SHA1'), 'Build-Time': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ) } @@ -326,76 +353,30 @@ subprojects { publishing { publications { mavenJava(MavenPublication) { - pom.withXml { - asNode().appendNode('name', projectTitle) - asNode().appendNode('description', description) - asNode().appendNode('url', 'http://www.sonarqube.org/') - - def organization = asNode().appendNode('organization') - organization.appendNode('name', 'SonarSource') - organization.appendNode('url', 'http://www.sonarsource.com') - - def licenses = asNode().appendNode('licenses') - def license = licenses.appendNode('license') - license.appendNode('name', 'GNU LGPL 3') - license.appendNode('url', 'http://www.gnu.org/licenses/lgpl.txt') - license.appendNode('distribution', 'repo') - - def scm = asNode().appendNode('scm') - scm.appendNode('url', 'https://github.com/SonarSource/sonarqube') - - def developers = asNode().appendNode('developers') - def developer = developers.appendNode('developer') - developer.appendNode('id', 'bellingard') - developer.appendNode('name', 'Fabrice Bellingard') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'dbolkensteyn') - developer.appendNode('name', 'Dinesh Bolkensteyn') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'ehartmann') - developer.appendNode('name', 'Eric Hartmann') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'fmallet') - developer.appendNode('name', 'Freddy Mallet') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'Godin') - developer.appendNode('name', 'Evgeny Mandrikov') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'henryju') - developer.appendNode('name', 'Julien Henry') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'jblievremont') - developer.appendNode('name', 'Jean-Baptiste Lievremont') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'julienlancelot') - developer.appendNode('name', 'Julien Lancelot') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'olivier.gaudin') - developer.appendNode('name', 'Olivier Gaudin') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'simonbrandhof') - developer.appendNode('name', 'Simon Brandhof') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'sns-seb') - developer.appendNode('name', 'Sebastien Lesaint') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'stas-vilchik') - developer.appendNode('name', 'Stas Vilchik') - - developer = developers.appendNode('developer') - developer.appendNode('id', 'teryk') - developer.appendNode('name', 'Teryk Bellahsene') + pom { + name = 'SonarQube' + description = project.description + url = 'http://www.sonarqube.org/' + organization { + name = 'SonarSource' + url = 'http://www.sonarsource.com' + } + licenses { + license { + name = 'GNU LGPL 3' + url = 'http://www.gnu.org/licenses/lgpl.txt' + distribution = 'repo' + } + } + scm { + url = 'https://github.com/SonarSource/sonarqube' + } + developers { + developer { + id = 'sonarsource-team' + name = 'SonarSource Team' + } + } } } } @@ -415,10 +396,10 @@ artifactory { defaults { properties = [ 'build.name': 'sonar-enterprise', - 'build.number': (System.getenv('BUILD_ID') ?: System.getenv('BUILD_NUMBER')), - 'pr.branch.target': System.getenv('GITHUB_TARGET_BRANCH'), + 'build.number': System.getenv('BUILD_NUMBER'), + 'pr.branch.target': System.getenv('GITHUB_BASE_BRANCH'), 'pr.number': System.getenv('PULL_REQUEST'), - 'vcs.branch': System.getenv('GITHUB_BASE_BRANCH') ?: System.getenv('GITHUB_BRANCH'), + 'vcs.branch': System.getenv('GITHUB_BRANCH'), 'vcs.revision': System.getenv('GIT_SHA1'), 'version': version ] |