mirror of
https://github.com/SonarSource/sonarqube.git
synced 2024-08-08 03:05:57 +02:00
![Simon Brandhof](/assets/img/avatar_default.png)
The configuration of private subprojects must be fixed in order to correct set the properties like "build.name" on private artifacts.
153 lines
4.3 KiB
Groovy
153 lines
4.3 KiB
Groovy
import java.util.regex.Matcher
|
|
import java.util.regex.Pattern
|
|
|
|
Pattern PLUGIN_NAME_PATTERN = Pattern.compile("(sonar-.*-plugin)(.*)")
|
|
|
|
|
|
/**
|
|
* This module is building the zip file containing the static web site
|
|
*/
|
|
|
|
sonarqube {
|
|
skipProject = true
|
|
}
|
|
|
|
group = 'com.sonarsource.sonarqube'
|
|
|
|
configurations {
|
|
bundledPlugin {
|
|
transitive = false
|
|
}
|
|
}
|
|
|
|
// loads the bundled_plugins.gradle of each edition
|
|
// (they will all add there own bundled plugins to the bundledPlugin dependency configuration)
|
|
apply from: new File(rootDir, 'sonar-application/bundled_plugins.gradle')
|
|
File closeSourceDir = new File(rootDir, 'private');
|
|
if (closeSourceDir.exists()) {
|
|
apply from: new File(closeSourceDir, 'edition-developer/bundled_plugins.gradle')
|
|
apply from: new File(closeSourceDir, 'edition-enterprise/bundled_plugins.gradle')
|
|
apply from: new File(closeSourceDir, 'edition-datacenter/bundled_plugins.gradle')
|
|
}
|
|
|
|
task extractAnalyzerDocFiles {
|
|
doLast {
|
|
configurations.bundledPlugin.files.each {
|
|
File file = it
|
|
copy {
|
|
from(zipTree(file).matching { include 'static/documentation.md' }) {
|
|
eachFile { fcd ->
|
|
Matcher m = PLUGIN_NAME_PATTERN.matcher(file.getName())
|
|
if (m.find()) {
|
|
fcd.relativePath = new RelativePath(true, m.group(1) + '.md')
|
|
}
|
|
}
|
|
includeEmptyDirs = false
|
|
}
|
|
into "$buildDir/tmp/plugin-documentation/"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
yarn_run {
|
|
def docsVersion = version.split("[.-]").take(2).join('.')
|
|
environment = [ GATSBY_DOCS_VERSION: docsVersion ]
|
|
inputs.property('version', docsVersion)
|
|
inputs.dir('src').withPathSensitivity(PathSensitivity.RELATIVE)
|
|
['gatsby-config.js', 'gatsby-node.js', 'package.json', 'yarn.lock', 'tsconfig.json'].each {
|
|
inputs.file(it).withPathSensitivity(PathSensitivity.RELATIVE)
|
|
}
|
|
outputs.dir('public')
|
|
outputs.cacheIf { true }
|
|
args = ['build']
|
|
}
|
|
// To clean outputs outside of "build" directory:
|
|
clean.dependsOn(cleanYarn_run)
|
|
|
|
"yarn_validate-ci" {
|
|
// Note that outputs are not relocatable, because contain absolute paths, and that's why inputs are not relativized
|
|
['config', 'src'].each {
|
|
inputs.dir(it)
|
|
}
|
|
['package.json', 'yarn.lock', 'tsconfig.json', '.eslintrc'].each {
|
|
inputs.file(it)
|
|
}
|
|
outputs.file('eslint-report.json')
|
|
outputs.dir('coverage')
|
|
outputs.cacheIf { true }
|
|
|
|
dependsOn(yarn)
|
|
}
|
|
|
|
// Check for known vulnerabilities
|
|
yarn_audit {
|
|
inputs.file('package.json')
|
|
outputs.cacheIf { false }
|
|
args = ['--groups', 'dependencies', '--level', 'high']
|
|
ignoreExitValue = true
|
|
dependsOn(yarn)
|
|
}
|
|
|
|
task zip(type: Zip) {
|
|
def archiveDir = "$version"
|
|
duplicatesStrategy DuplicatesStrategy.EXCLUDE
|
|
baseName "sonar-docs"
|
|
|
|
into("${archiveDir}") {
|
|
from tasks.getByName('yarn_run').outputs
|
|
}
|
|
}
|
|
zip.dependsOn yarn_run
|
|
assemble.dependsOn zip, extractAnalyzerDocFiles
|
|
|
|
publishing {
|
|
publications {
|
|
docs(MavenPublication) {
|
|
artifactId 'sonar-docs'
|
|
artifact zip
|
|
}
|
|
}
|
|
}
|
|
|
|
artifactory {
|
|
publish {
|
|
repository {
|
|
repoKey = System.getenv('ARTIFACTORY_DEPLOY_REPO_PRIVATE')
|
|
username = System.getenv('ARTIFACTORY_DEPLOY_USERNAME_PRIVATE') ?: project.properties.artifactoryUsername
|
|
password = System.getenv('ARTIFACTORY_DEPLOY_PASSWORD_PRIVATE') ?: project.properties.artifactoryPaswword
|
|
}
|
|
defaults {
|
|
properties = [
|
|
'build.name' : 'sonar-enterprise',
|
|
'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_BRANCH'),
|
|
'vcs.revision' : System.getenv('GIT_SHA1'),
|
|
'version' : version
|
|
]
|
|
publishPom = true
|
|
publishIvy = false
|
|
}
|
|
}
|
|
}
|
|
|
|
artifactoryPublish {
|
|
skip = false
|
|
publishPom = false
|
|
publications(publishing.publications.docs)
|
|
}
|
|
|
|
def sources = fileTree(dir: "src") + fileTree(dir: "config") + fileTree(dir: "plugins") + file("gatsby-config.js") + file("gatsby-node.js")
|
|
|
|
task licenseCheckWeb(type: com.hierynomus.gradle.license.tasks.LicenseCheck) {
|
|
source = sources
|
|
}
|
|
licenseMain.dependsOn licenseCheckWeb
|
|
|
|
task licenseFormatWeb(type: com.hierynomus.gradle.license.tasks.LicenseFormat) {
|
|
source = sources
|
|
}
|
|
licenseFormat.dependsOn licenseFormatWeb
|