aboutsummaryrefslogtreecommitdiffstats
path: root/Jenkinsfile
diff options
context:
space:
mode:
authorElena Vilchik2018-06-12 13:34:33 +0200
committerGitHub2018-06-12 13:34:33 +0200
commitfb56fdc0dc18d277ccfae2cdb948e9da367377ea (patch)
treeabf9f112d0249d97bac25123f30bdb6188164401 /Jenkinsfile
parent6cebcca87c5d276627fe22b9c53ddeb4844894b6 (diff)
downloadsonar-css-fb56fdc0dc18d277ccfae2cdb948e9da367377ea.tar.bz2
Create CSS language and set up trivial ITs (#39)
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile127
1 files changed, 127 insertions, 0 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..0503600
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,127 @@
+@Library('SonarSource@1.11') _
+
+pipeline {
+ agent {
+ label 'linux'
+ }
+ parameters {
+ string(name: 'GIT_SHA1', description: 'Git SHA1 (provided by travisci hook job)')
+ string(name: 'CI_BUILD_NAME', defaultValue: 'sonar-css', description: 'Build Name (provided by travisci hook job)')
+ string(name: 'CI_BUILD_NUMBER', description: 'Build Number (provided by travisci hook job)')
+ string(name: 'GITHUB_BRANCH', defaultValue: 'master', description: 'Git branch (provided by travisci hook job)')
+ string(name: 'GITHUB_REPOSITORY_OWNER', defaultValue: 'SonarSource', description: 'Github repository owner(provided by travisci hook job)')
+ }
+ environment {
+ SONARSOURCE_QA = 'true'
+ MAVEN_TOOL = 'Maven 3.3.x'
+ }
+ stages {
+ stage('Notify') {
+ steps {
+ sendAllNotificationQaStarted()
+ }
+ }
+ stage('QA') {
+ parallel {
+ stage('ITs-lts') {
+ agent {
+ label 'linux'
+ }
+ steps {
+ runITs "LATEST_RELEASE[6.7]"
+ }
+ }
+
+ stage('ITs-latest') {
+ agent {
+ label 'linux'
+ }
+ steps {
+ runITs "LATEST_RELEASE"
+ }
+ }
+
+ stage('ITs-windows') {
+ agent {
+ label 'windows'
+ }
+ steps {
+ runITsWindows "LATEST_RELEASE"
+ }
+ }
+
+ stage('ITs-dev') {
+ agent {
+ label 'linux'
+ }
+ steps {
+ runITs "DEV"
+ }
+ }
+
+ stage('CI-windows') {
+ agent {
+ label 'windows'
+ }
+ steps {
+ withMaven(maven: MAVEN_TOOL) {
+ sh 'mvn.cmd clean test'
+ }
+ }
+ }
+ }
+ post {
+ always {
+ sendAllNotificationQaResult()
+ }
+ }
+ }
+ stage('Promote') {
+ steps {
+ repoxPromoteBuild()
+ }
+ post {
+ always {
+ sendAllNotificationPromote()
+ }
+ }
+ }
+ }
+}
+
+def runITs(String sqRuntimeVersion) {
+ withQAEnv {
+ withMaven(maven: MAVEN_TOOL) {
+ mavenSetBuildVersion()
+ dir('its') {
+ sh "mvn ${itBuildArguments sqRuntimeVersion}"
+ }
+ }
+ }
+}
+
+def runITsWindows(String sqRuntimeVersion) {
+ withQAEnv {
+ withMaven(maven: MAVEN_TOOL) {
+ mavenSetBuildVersion()
+ dir('its') {
+ sh "mvn.cmd ${itBuildArguments sqRuntimeVersion}"
+ }
+ }
+ }
+}
+
+def withQAEnv(def body) {
+ checkout scm
+ withCredentials([string(credentialsId: 'ARTIFACTORY_PRIVATE_API_KEY', variable: 'ARTIFACTORY_PRIVATE_API_KEY'),
+ usernamePassword(credentialsId: 'ARTIFACTORY_PRIVATE_USER', passwordVariable: 'ARTIFACTORY_PRIVATE_PASSWORD', usernameVariable: 'ARTIFACTORY_PRIVATE_USERNAME')]) {
+ wrap([$class: 'Xvfb']) {
+ body.call()
+ }
+ }
+}
+
+String itBuildArguments(String sqRuntimeVersion) {
+ "-Pits -Dsonar.runtimeVersion=${sqRuntimeVersion} -Dorchestrator.artifactory.apiKey=${env.ARTIFACTORY_PRIVATE_API_KEY} " +
+ "-Dorchestrator.configUrl=http://infra.internal.sonarsource.com/jenkins/orch-h2.properties -Dmaven.test.redirectTestOutputToFile=false clean verify -e -V"
+}