diff options
| author | Elena Vilchik | 2018-06-12 13:34:33 +0200 | 
|---|---|---|
| committer | GitHub | 2018-06-12 13:34:33 +0200 | 
| commit | fb56fdc0dc18d277ccfae2cdb948e9da367377ea (patch) | |
| tree | abf9f112d0249d97bac25123f30bdb6188164401 /Jenkinsfile | |
| parent | 6cebcca87c5d276627fe22b9c53ddeb4844894b6 (diff) | |
| download | sonar-css-fb56fdc0dc18d277ccfae2cdb948e9da367377ea.tar.bz2 | |
Create CSS language and set up trivial ITs (#39)
Diffstat (limited to 'Jenkinsfile')
| -rw-r--r-- | Jenkinsfile | 127 | 
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" +} | 
