<<: *CONTAINER_TEMPLATE
cpu: 7.5
memory: 8Gb
- elasticsearch_distribution_cache:
- folder: sonar-application/build/elasticsearch-**.tar.gz
script:
- ./private/cirrus/cirrus-build.sh
<<: *DEFAULT_ARTIFACTS_TEMPLATE
repositories {
def repository = project.hasProperty('qa') ? 'sonarsource-qa' : 'sonarsource'
+ // The environment variables ARTIFACTORY_PRIVATE_USERNAME and ARTIFACTORY_PRIVATE_PASSWORD are used on QA env (Jenkins)
+ // On local box, please add artifactoryUsername and artifactoryPassword to ~/.gradle/gradle.properties
+ def artifactoryUsername = System.env.'ARTIFACTORY_PRIVATE_USERNAME' ?: (project.hasProperty('artifactoryUsername') ? project.getProperty('artifactoryUsername') : '')
+ def artifactoryPassword = System.env.'ARTIFACTORY_PRIVATE_PASSWORD' ?: (project.hasProperty('artifactoryPassword') ? project.getProperty('artifactoryPassword') : '')
+
maven {
- // The environment variables ARTIFACTORY_PRIVATE_USERNAME and ARTIFACTORY_PRIVATE_PASSWORD are used on QA env (Jenkins)
- // On local box, please add artifactoryUsername and artifactoryPassword to ~/.gradle/gradle.properties
- def artifactoryUsername = System.env.'ARTIFACTORY_PRIVATE_USERNAME' ?: (project.hasProperty('artifactoryUsername') ? project.getProperty('artifactoryUsername') : '')
- def artifactoryPassword = System.env.'ARTIFACTORY_PRIVATE_PASSWORD' ?: (project.hasProperty('artifactoryPassword') ? project.getProperty('artifactoryPassword') : '')
- if (artifactoryUsername && artifactoryPassword) {
- credentials {
- username artifactoryUsername
- password artifactoryPassword
+ if (artifactoryUsername && artifactoryPassword) {
+ credentials {
+ username artifactoryUsername
+ password artifactoryPassword
+ }
+ } else {
+ // Workaround for artifactory
+ // https://www.jfrog.com/jira/browse/RTFACT-13797
+ repository = 'public'
}
- } else {
- // Workaround for artifactory
- // https://www.jfrog.com/jira/browse/RTFACT-13797
- repository = 'public'
- }
- url "https://repox.jfrog.io/repox/${repository}"
+ url "https://repox.jfrog.io/repox/${repository}"
+ }
+ ivy {
+ if (artifactoryUsername && artifactoryPassword) {
+ credentials {
+ username artifactoryUsername
+ password artifactoryPassword
+ }
+ } else {
+ // Workaround for artifactory
+ // https://www.jfrog.com/jira/browse/RTFACT-13797
+ repository = 'public'
+ }
+ url "https://repox.jfrog.io/repox/sonarsource-bucket"
+
+ patternLayout {
+ artifact '/[organisation]/[module]/[module]-[revision].[ext]'
+ }
+ metadataSources { artifact() }
}
}
org.gradle.jvmargs=-Xmx2048m
org.gradle.caching=true
org.gradle.vfs.watch=true
-# https://www.elastic.co/downloads/elasticsearch-no-jdk
-elasticsearchDownloadUrlPath=https://artifacts.elastic.co/downloads/elasticsearch/
-elasticsearchDownloadRepoxUrlPath=https://repox.jfrog.io/artifactory/sonarsource-bucket/sonarqube/elasticsearch/
-elasticsearchDownloadUrlFileNoJdk=elasticsearch-8.7.0-no-jdk-linux-x86_64.tar.gz
-elasticsearchDownloadUrlFileJdk=elasticsearch-8.7.0-linux-x86_64.tar.gz
-elasticsearchDownloadSha512NoJdk=155ff74d55ff4ec9abe04877fd9da50f7083e5dee6c80fc85d61819fa1ca3e22dfa70478ab0632d89f1ec10153cfb38361c88a9babf4a4900cfd2d0639346673
-elasticsearchDownloadSha512Jdk=7ac6ee5e2e2ccee1ebb20a1c94992b90e879b8b37273d59ae1496b1e8ae5499ae1b6ddce8cea7dda3b63e7e45352735b2bd3328ad0fdd6d6aadb020de21eb894
+elasticsearchVersion=8.7.0
projectType=application
org.gradle.logging.level=info
}
configurations {
+ zipDist
zip
scanner
web
jdbc_h2 'com.h2database:h2'
jdbc_mssql 'com.microsoft.sqlserver:mssql-jdbc'
jdbc_postgresql 'org.postgresql:postgresql'
+
+ def artifactoryUsername = System.env.'ARTIFACTORY_PRIVATE_USERNAME' ?: (project.hasProperty('artifactoryUsername') ? project.getProperty('artifactoryUsername') : '')
+ def artifactoryPassword = System.env.'ARTIFACTORY_PRIVATE_PASSWORD' ?: (project.hasProperty('artifactoryPassword') ? project.getProperty('artifactoryPassword') : '')
+ if (artifactoryUsername && artifactoryPassword) {
+ zipDist "sonarqube:elasticsearch:${elasticsearchVersion}-no-jdk-linux-x86_64@tar.gz"
+ } else {
+ zipDist "sonarqube:elasticsearch:${elasticsearchVersion}-linux-x86_64@tar.gz"
+ }
+
}
// declare dependencies in configuration bundledPlugin to be packaged in lib/extensions
}
}
-def artifactoryUsername = System.env.'ARTIFACTORY_PRIVATE_USERNAME' ?: (project.hasProperty('artifactoryUsername') ? project.getProperty('artifactoryUsername') : '')
-def artifactoryPassword = System.env.'ARTIFACTORY_PRIVATE_PASSWORD' ?: (project.hasProperty('artifactoryPassword') ? project.getProperty('artifactoryPassword') : '')
-
-task verifyElasticSearchDownload(type: Verify) {
- if (artifactoryUsername && artifactoryPassword) {
- src new File(buildDir, "$elasticsearchDownloadUrlFileNoJdk")
- algorithm 'SHA-512'
- checksum elasticsearchDownloadSha512NoJdk
- } else {
- src new File(buildDir, "$elasticsearchDownloadUrlFileJdk")
- algorithm 'SHA-512'
- checksum elasticsearchDownloadSha512Jdk
- }
-}
-
-task downloadElasticSearch(type: Download) {
- if (artifactoryUsername && artifactoryPassword) {
- src "$elasticsearchDownloadRepoxUrlPath$elasticsearchDownloadUrlFileNoJdk"
- username artifactoryUsername
- password artifactoryPassword
- dest "$buildDir/$elasticsearchDownloadUrlFileNoJdk"
- } else {
- src "$elasticsearchDownloadUrlPath$elasticsearchDownloadUrlFileJdk"
- dest "$buildDir/$elasticsearchDownloadUrlFileJdk"
- }
- onlyIfModified true
- finalizedBy verifyElasticSearchDownload
-}
downloadLicenses {
dependencyConfiguration = 'appLicenses'
}
-task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElasticSearch, verifyElasticSearchDownload]) {
+task zip(type: Zip, dependsOn: [configurations.compileClasspath]) {
duplicatesStrategy DuplicatesStrategy.EXCLUDE
def archiveDir = "sonarqube-$project.version"
}
}
-
- from(tarTree(downloadElasticSearch.dest)) {
+ ResolvedArtifact elasticSearchArtifact = configurations.zipDist.resolvedConfiguration.resolvedArtifacts.find {
+ it.moduleVersion.id.name == "elasticsearch"
+ }
+ from(tarTree(elasticSearchArtifact.file)) {
eachFile { fcd ->
def path = fcd.relativePath.segments - fcd.relativeSourcePath.segments + fcd.relativeSourcePath.segments.drop(1)
fcd.relativePath = new RelativePath(true, *path)