# content of service-account-credentials.json, used to access to Google Cloud Platform | |||||
gcp_credentials: ENCRYPTED[534d4b89444f3e4e3ba299769a98010609e71992355c132fd6e448f1d8fcb039184224c8b4cdf7933b0aec16d6a8896d] | |||||
env: | |||||
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-XX:+PrintFlagsFinal -XshowSettings:vm -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8" | |||||
# to be replaced by other credentials | |||||
ARTIFACTORY_PRIVATE_USERNAME: ENCRYPTED[ab2de699acd280b1e6ed9b4fa6b34cdbed0fae3a2d18499a727e93616a42393a9168405e5d0f39f0abe1e017559ee82b] | |||||
ARTIFACTORY_PRIVATE_PASSWORD: ENCRYPTED[81952f43bfff165a91fb7e2f3207f5c6d428f4de4b041a8a08e8b214ee52ec4586aa8f6dffacbbc2c897058e80ef90f1] | |||||
ARTIFACTORY_DEPLOY_USERNAME: public-qa-deployer | |||||
ARTIFACTORY_DEPLOY_PASSWORD: ENCRYPTED[9362d735843b21b375b6e19d91e0de5216e053e229e39e2ce33a0c866306e6e3f9b08db8a0e126ca5e986fea97e975fd] | |||||
ARTIFACTORY_DEPLOY_USERNAME_PRIVATE: private-qa-deployer | |||||
ARTIFACTORY_DEPLOY_PASSWORD_PRIVATE: ENCRYPTED[61769719e9b775afe103dbee22141eeaa0116b3332eafb993be2a5919ff7bf017cdc519afed07dc6cac8ebbc0846f191] | |||||
ARTIFACTORY_API_KEY: ENCRYPTED[9da84e89286d570d8edb72a117a66754fda80de2a911ca9d4e71acd5377ebcaf62cec3fd2a40b7dca2f982c252a0bb74] | |||||
# download licenses for testing commercial editions | |||||
GITHUB_TOKEN: ENCRYPTED[bd3d5f7fe5901d9d9f2564caebb52af285262177294eae67ba5f1a3a1df1316449ce6e09c5e1b68eeff37e024e2d167a] | |||||
# notifications to burgr | |||||
BURGR_URL: ENCRYPTED[24fba83587c1e9ed372b6cfdf12e4739ebe3b6e5b5082f1a2a742e840dd2e4b61fd5e281bf2632b22b3ad346c650c05c] | |||||
BURGR_USERNAME: ENCRYPTED[cf7bfb936025fb763013bbfef0ab5723c0d9b53f135d79af36f9defa933f4b5fc72842bd83a97ce9b614503c1b77e6da] | |||||
BURGR_PASSWORD: ENCRYPTED[bc554fc6a06c9f14cc9924cefad0a69e962a905b6d1609fc9357d458b45fc52ac74c960ad9c7382a0691433fa9dcd483] | |||||
# ops-jenkins credentials required to trigger docs deppoyment | |||||
OPS_JENKINS_URL: ENCRYPTED[00ea2b88c762e374c02a3d29a306cc1cf3ceb4b3d807bda2a601486e0d483fd67a556ef295830231390f45e7d512b54d] | |||||
OPS_JENKINS_USERNAME: ENCRYPTED[c778b1483a7ca000dc760ef731c2fbe1dc05a9af38f2a85206cfbcdf649e50715ca447ac291485d513aa9120b0c9abad] | |||||
OPS_JENKINS_PASSWORD: ENCRYPTED[a035a2826c3bc971288284a59bd00dda193d8a81e7809e08bf4ec59b68894c16f30095a567e65755240bb7f919c2e0bf] | |||||
# DOCS_JOB_TOKEN: token required to launch the deployment of documentation job on ops-jenkins (see private/cirrus/cirrus-trigger-deploy-docs.sh) | |||||
DOCS_JOB_TOKEN: ENCRYPTED[7771f76a0fc0038f9929c32d98588963c8dcda6148ba054f57358bc17faa109ac638134c89067f3bacc8933d2fa2c541] | |||||
# PERF_JOB_TOKEN: token required to launch the performance job on cix (see private/cirrus/cirrus-trigger-perf.sh) | |||||
# token required to launch the performance job on cix (see private/cirrus/cirrus-trigger-perf.sh) | |||||
PERF_JOB_TOKEN: ENCRYPTED[897955ea5d84f35a47fe71528d1c86b2e9d6deb189f62a43ce2b0d8879dd85cbc406f17ec4d0a4c97b7424ce40794eb5] | |||||
# analysis on next.sonarqube.com | |||||
SONARQUBE_NEXT_TOKEN: ENCRYPTED[e3d98fa0ecceb015e9803d47f78c3040f5a710d678a631107635d69f650d4e53ecaf2e2334cc1fe0c47037ec915dcda0] | |||||
# could be used in Artifactory statistics | |||||
CI_ENV: cirrus | |||||
build_task: | |||||
only_if: $CIRRUS_BRANCH !=~ "dogfood/*" && $CIRRUS_BRANCH != "public_master" | |||||
gke_container: | |||||
image: gradle:4.10.1-jdk8 | |||||
cluster_name: cirrus-cluster | |||||
zone: us-central1-a | |||||
namespace: default | |||||
cpu: 3 | |||||
memory: 10Gb | |||||
gradle_cache: | |||||
folder: ~/.gradle/caches | |||||
script: | |||||
- ./private/cirrus/cirrus-build.sh | |||||
cleanup_before_cache_script: | |||||
- rm -rf ~/.gradle/caches/$GRADLE_VERSION/ | |||||
- find ~/.gradle/caches/ -name "*.lock" -type f -delete | |||||
deploy_docs_task: | |||||
depends_on: build | |||||
only_if: $CIRRUS_BRANCH == 'dogfood-on-next' | |||||
gke_container: | |||||
image: gradle:4.9.0-jdk8 | |||||
cluster_name: cirrus-cluster | |||||
zone: us-central1-a | |||||
namespace: default | |||||
cpu: 1 | |||||
memory: 1Gb | |||||
script: | |||||
- ./private/cirrus/cirrus-trigger-deploy-docs.sh | |||||
validate_task: | |||||
depends_on: build | |||||
only_if: $CIRRUS_BRANCH !=~ "dogfood/*" && $CIRRUS_BRANCH != "public_master" | |||||
gke_container: | |||||
image: gcr.io/ci-cd-215716/sonar-enterprise-build:0.0.2 | |||||
cluster_name: cirrus-cluster | |||||
zone: us-central1-a | |||||
namespace: default | |||||
cpu: 3 | |||||
memory: 10Gb | |||||
additional_containers: | |||||
- name: postgres | |||||
image: postgres:9.3.23 | |||||
port: 5432 | |||||
cpu: 0.8 | |||||
memory: 1Gb | |||||
env: | |||||
POSTGRES_USER: postgres | |||||
POSTGRES_PASSWORD: postgres | |||||
gradle_cache: | |||||
folder: ~/.gradle/caches | |||||
script: | |||||
- ./private/cirrus/cirrus-validate.sh postgres | |||||
cleanup_before_cache_script: | |||||
- rm -rf ~/.gradle/caches/$GRADLE_VERSION/ | |||||
- find ~/.gradle/caches/ -name "*.lock" -type f -delete | |||||
qa_task: | |||||
depends_on: build | |||||
only_if: $CIRRUS_BRANCH !=~ "dogfood/*" && $CIRRUS_BRANCH != "public_master" | |||||
gke_container: | |||||
image: gcr.io/ci-cd-215716/sonar-enterprise-qa:0.0.1 | |||||
cluster_name: cirrus-cluster | |||||
zone: us-central1-a | |||||
namespace: default | |||||
cpu: 3 | |||||
memory: 10Gb | |||||
additional_containers: | |||||
- name: postgres | |||||
image: postgres:9.3.23 | |||||
port: 5432 | |||||
cpu: 0.7 | |||||
memory: 1Gb | |||||
env: | |||||
POSTGRES_USER: postgres | |||||
POSTGRES_PASSWORD: postgres | |||||
env: | |||||
matrix: | |||||
QA_CATEGORY: Category1 | |||||
QA_CATEGORY: Category2 | |||||
QA_CATEGORY: Category3 | |||||
QA_CATEGORY: Category4 | |||||
QA_CATEGORY: Category5 | |||||
QA_CATEGORY: Category6 | |||||
QA_CATEGORY: Developer | |||||
QA_CATEGORY: Plugins | |||||
QA_CATEGORY: Upgrade | |||||
gradle_cache: | |||||
folder: ~/.gradle/caches | |||||
script: | |||||
- ./private/cirrus/cirrus-qa.sh postgres | |||||
cleanup_before_cache_script: | |||||
- rm -rf ~/.gradle/caches/$GRADLE_VERSION/ | |||||
- find ~/.gradle/caches/ -name "*.lock" -type f -delete | |||||
promote_task: | |||||
depends_on: | |||||
- build | |||||
- validate | |||||
- qa | |||||
only_if: $CIRRUS_BRANCH !=~ "dogfood/*" && $CIRRUS_BRANCH != "public_master" | |||||
gke_container: | |||||
image: gcr.io/ci-cd-215716/sonar-enterprise-bash:0.0.1 | |||||
cluster_name: cirrus-cluster | |||||
zone: us-central1-a | |||||
namespace: default | |||||
cpu: 1 | |||||
memory: 1Gb | |||||
script: | |||||
- if [ "$CIRRUS_BRANCH" == 'master' ] || [[ "$CIRRUS_BRANCH" == "branch-"* ]]; then ./private/cirrus/cirrus-trigger-perf.sh; fi | |||||
- ./private/cirrus/cirrus-promote.sh |
dependencies { | dependencies { | ||||
// Ordered alphabeticly to avoid duplication | // Ordered alphabeticly to avoid duplication | ||||
classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0' | 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.google.protobuf:protobuf-gradle-plugin:0.8.6' | ||||
classpath 'com.moowork.gradle:gradle-node-plugin:1.2.0' | classpath 'com.moowork.gradle:gradle-node-plugin:1.2.0' | ||||
classpath "gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.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' | 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' | 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! | // Analyze SonarQube with SonarQube! | ||||
ext.versionInSources = version | |||||
apply plugin: 'org.sonarqube' | apply plugin: 'org.sonarqube' | ||||
sonarqube { | sonarqube { | ||||
properties { | properties { | ||||
property 'sonar.projectName', projectTitle | property 'sonar.projectName', projectTitle | ||||
property 'sonar.projectVersion', versionInSources | |||||
} | } | ||||
} | } | ||||
} | } | ||||
repositories { | repositories { | ||||
def repository = project.hasProperty('cix') ? 'sonarsource-qa' : 'sonarsource' | |||||
def repository = project.hasProperty('qa') ? 'sonarsource-qa' : 'sonarsource' | |||||
maven { | maven { | ||||
url "https://repox.sonarsource.com/${repository}" | url "https://repox.sonarsource.com/${repository}" | ||||
// The environment variables ARTIFACTORY_PRIVATE_USERNAME and ARTIFACTORY_PRIVATE_PASSWORD are used on QA env (Jenkins) | // The environment variables ARTIFACTORY_PRIVATE_USERNAME and ARTIFACTORY_PRIVATE_PASSWORD are used on QA env (Jenkins) | ||||
dependency 'org.postgresql:postgresql:42.2.5' | dependency 'org.postgresql:postgresql:42.2.5' | ||||
dependency 'org.reflections:reflections:0.9.9' | dependency 'org.reflections:reflections:0.9.9' | ||||
dependency 'org.simpleframework:simple:4.1.21' | 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') { | dependency('org.sonarsource:sonar-persistit:3.3.2') { | ||||
exclude 'commons-logging:commons-logging' | exclude 'commons-logging:commons-logging' | ||||
} | } | ||||
// when needed (see protobuf modules for example) | // when needed (see protobuf modules for example) | ||||
} | } | ||||
test { | test { | ||||
jvmArgs '-Dfile.encoding=UTF8' | |||||
maxHeapSize = '1G' | |||||
systemProperty 'java.awt.headless', true | systemProperty 'java.awt.headless', true | ||||
jacoco.enabled = project.hasProperty('jacocoEnabled') | |||||
testLogging { | 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) | 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' | def protoMainSrc = 'src/main/protobuf' | ||||
sourceSets.test.proto.srcDir protoTestSrc // in addition to the default 'src/test/proto' | sourceSets.test.proto.srcDir protoTestSrc // in addition to the default 'src/test/proto' | ||||
protobuf { | protobuf { | ||||
protoc { | protoc { | ||||
artifact = "com.google.protobuf:protoc:${protobufVersion}" | |||||
artifact = "com.google.protobuf:protoc:3.5.1" | |||||
} | } | ||||
} | } | ||||
jar { | jar { | ||||
manifest { | manifest { | ||||
attributes( | attributes( | ||||
'Version': "${version}", | '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") | 'Build-Time': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") | ||||
) | ) | ||||
} | } | ||||
publishing { | publishing { | ||||
publications { | publications { | ||||
mavenJava(MavenPublication) { | 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' | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
defaults { | defaults { | ||||
properties = [ | properties = [ | ||||
'build.name': 'sonar-enterprise', | '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'), | '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'), | 'vcs.revision': System.getenv('GIT_SHA1'), | ||||
'version': version | 'version': version | ||||
] | ] |
#Mon Apr 16 10:55:26 PDT 2018 | |||||
distributionBase=GRADLE_USER_HOME | distributionBase=GRADLE_USER_HOME | ||||
distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-bin.zip | |||||
zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||
zipStorePath=wrapper/dists | zipStorePath=wrapper/dists | ||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-bin.zip |
main = 'org.sonar.db.CreateDb' | main = 'org.sonar.db.CreateDb' | ||||
classpath = sourceSets.test.runtimeClasspath | classpath = sourceSets.test.runtimeClasspath | ||||
systemProperty 'orchestrator.configUrl', System.getProperty('orchestrator.configUrl') | systemProperty 'orchestrator.configUrl', System.getProperty('orchestrator.configUrl') | ||||
systemProperty 'sonar.runtimeVersion', System.getProperty('sonar.runtimeVersion') | |||||
systemProperty 'sonar.runtimeVersion', project.version | |||||
} | } | ||||
test { | test { |
yarn_run { | yarn_run { | ||||
inputs.dir('src').withPathSensitivity(PathSensitivity.RELATIVE) | inputs.dir('src').withPathSensitivity(PathSensitivity.RELATIVE) | ||||
['gatsby-config.js', 'gatsby-node.js', 'package.json', 'yarn.lock'].each { | |||||
['gatsby-config.js', 'gatsby-node.js', 'package.json'].each { | |||||
inputs.file(it).withPathSensitivity(PathSensitivity.RELATIVE) | inputs.file(it).withPathSensitivity(PathSensitivity.RELATIVE) | ||||
} | } | ||||
outputs.dir('public') | outputs.dir('public') | ||||
outputs.cacheIf { true } | outputs.cacheIf { true } | ||||
args = ['build'] | args = ['build'] | ||||
} | } | ||||
task yarn_validate() { | |||||
} | |||||
task "yarn_lint-report"() { | |||||
} | |||||
task zip(type: Zip) { | task zip(type: Zip) { | ||||
def archiveDir = "sonarqube-docs-$version" | def archiveDir = "sonarqube-docs-$version" | ||||
duplicatesStrategy DuplicatesStrategy.EXCLUDE | duplicatesStrategy DuplicatesStrategy.EXCLUDE |
import java.net.URL; | import java.net.URL; | ||||
import java.util.Properties; | import java.util.Properties; | ||||
import org.apache.commons.io.FileUtils; | import org.apache.commons.io.FileUtils; | ||||
import org.junit.Ignore; | |||||
import org.junit.Rule; | import org.junit.Rule; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
import org.junit.rules.TemporaryFolder; | import org.junit.rules.TemporaryFolder; | ||||
import static org.assertj.core.api.Assertions.assertThat; | import static org.assertj.core.api.Assertions.assertThat; | ||||
import static org.junit.Assert.fail; | import static org.junit.Assert.fail; | ||||
@Ignore | |||||
public class EmbeddedTomcatTest { | public class EmbeddedTomcatTest { | ||||
@Rule | @Rule |
} | } | ||||
outputs.dir('build/webapp') | outputs.dir('build/webapp') | ||||
outputs.cacheIf { true } | outputs.cacheIf { true } | ||||
dependsOn(yarn, ':server:sonar-web:yarn') | |||||
args = ['build'] | args = ['build'] | ||||
} | } | ||||
yarn_run.dependsOn ':server:sonar-web:yarn_run' | |||||
build.dependsOn(yarn_run) | |||||
def sources = fileTree(dir: "src") + fileTree(dir: "scripts") + fileTree(dir: "config") | def sources = fileTree(dir: "src") + fileTree(dir: "scripts") + fileTree(dir: "config") | ||||
"babel-plugin-dynamic-import-node": "1.1.0", | "babel-plugin-dynamic-import-node": "1.1.0", | ||||
"babel-plugin-lodash": "3.3.2", | "babel-plugin-lodash": "3.3.2", | ||||
"babel-plugin-syntax-dynamic-import": "6.18.0", | "babel-plugin-syntax-dynamic-import": "6.18.0", | ||||
"babel-plugin-transform-class-properties": "6.22.0", | |||||
"babel-plugin-transform-class-properties": "^6.22.0", | |||||
"babel-plugin-transform-object-rest-spread": "6.26.0", | "babel-plugin-transform-object-rest-spread": "6.26.0", | ||||
"babel-plugin-transform-react-constant-elements": "6.22.0", | |||||
"babel-plugin-transform-react-jsx-self": "6.22.0", | |||||
"babel-plugin-transform-react-jsx-source": "6.22.0", | |||||
"babel-plugin-transform-react-constant-elements": "^6.22.0", | |||||
"babel-plugin-transform-react-jsx-self": "^6.22.0", | |||||
"babel-plugin-transform-react-jsx-source": "^6.22.0", | |||||
"babel-preset-env": "1.6.1", | "babel-preset-env": "1.6.1", | ||||
"babel-preset-react": "6.22.0", | "babel-preset-react": "6.22.0", | ||||
"chalk": "2.3.2", | "chalk": "2.3.2", |
['config', 'public', 'scripts', 'src', '../sonar-docs/src'].each { | ['config', 'public', 'scripts', 'src', '../sonar-docs/src'].each { | ||||
inputs.dir(it).withPathSensitivity(PathSensitivity.RELATIVE) | inputs.dir(it).withPathSensitivity(PathSensitivity.RELATIVE) | ||||
} | } | ||||
['.babelrc', 'build.gradle', 'package.json', 'tsconfig.json', 'yarn.lock'].each { | |||||
['.babelrc', 'package.json', 'tsconfig.json', 'yarn.lock'].each { | |||||
inputs.file(it).withPathSensitivity(PathSensitivity.RELATIVE) | inputs.file(it).withPathSensitivity(PathSensitivity.RELATIVE) | ||||
} | } | ||||
outputs.dir(webappDir) | outputs.dir(webappDir) | ||||
outputs.cacheIf { true } | outputs.cacheIf { true } | ||||
args = ['build'] | args = ['build'] | ||||
} | } | ||||
build.dependsOn(yarn_run) | |||||
def sources = fileTree(dir: "src") + fileTree(dir: "scripts") + fileTree(dir: "config") | def sources = fileTree(dir: "src") + fileTree(dir: "scripts") + fileTree(dir: "config") | ||||
if (extraSettings.exists()) { | if (extraSettings.exists()) { | ||||
apply from: extraSettings | apply from: extraSettings | ||||
} | } | ||||
ext.isCiServer = System.getenv().containsKey("CI") | |||||
ext.buildCacheHost = System.getenv().getOrDefault("CIRRUS_HTTP_CACHE_HOST", "localhost:12321") | |||||
buildCache { | |||||
local { | |||||
enabled = !isCiServer | |||||
} | |||||
remote(HttpBuildCache) { | |||||
url = "http://" + buildCacheHost + "/" | |||||
enabled = isCiServer | |||||
push = true | |||||
} | |||||
} |
configurations { | configurations { | ||||
zip | zip | ||||
jsw | jsw | ||||
scanner | scanner | ||||
web | |||||
jdbc_mssql { | jdbc_mssql { | ||||
transitive = false | transitive = false | ||||
} | } | ||||
jsw 'tanukisoft:wrapper:3.2.3' | jsw 'tanukisoft:wrapper:3.2.3' | ||||
scanner project(path: ':sonar-scanner-engine-shaded', configuration: 'shadow') | scanner project(path: ':sonar-scanner-engine-shaded', configuration: 'shadow') | ||||
web project(':server:sonar-vsts') | |||||
web project(':server:sonar-web') | |||||
jdbc_h2 'com.h2database:h2' | jdbc_h2 'com.h2database:h2' | ||||
jdbc_mssql 'com.microsoft.sqlserver:mssql-jdbc' | jdbc_mssql 'com.microsoft.sqlserver:mssql-jdbc' | ||||
jar { | jar { | ||||
manifest { | manifest { | ||||
attributes( | attributes( | ||||
'Class-Path': configurations.compile.collect { "common/${it.getName()}" }.join(' '), | |||||
'Class-Path': configurations.compile.resolvedConfiguration.files.collect { "common/${it.getName()}" }.join(' '), | |||||
'Main-Class': 'org.sonar.application.App' | 'Main-Class': 'org.sonar.application.App' | ||||
) | ) | ||||
} | } | ||||
from configurations.compile | from configurations.compile | ||||
} | } | ||||
into("${archiveDir}/web/") { | into("${archiveDir}/web/") { | ||||
// FIXME use configurations.web with correct artifacts | |||||
from tasks.getByPath(':server:sonar-web:yarn_run').outputs | from tasks.getByPath(':server:sonar-web:yarn_run').outputs | ||||
from tasks.getByPath(':server:sonar-vsts:yarn_run').outputs | from tasks.getByPath(':server:sonar-vsts:yarn_run').outputs | ||||
} | } |