This repository has been archived by the owner on Apr 27, 2021. It is now read-only.
/
Jenkinsfile
86 lines (79 loc) · 2.24 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env groovy
@Library('SonarSource@2.1.2') _
pipeline {
agent {
label 'linux'
}
parameters {
string(name: 'GIT_SHA1', description: 'Git SHA1 (provided by travisci hook job)')
string(name: 'CI_BUILD_NAME', defaultValue: 'sonar-security', 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.5.x'
JDK_VERSION = 'Java 11'
}
stages {
stage('Notify') {
steps {
sendAllNotificationQaStarted()
}
}
stage('QA') {
steps {
echo "No QA for SonarTS"
}
post {
always {
sendAllNotificationQaResult()
}
}
}
stage('Promote') {
steps {
repoxPromoteBuild()
}
post {
always {
sendAllNotificationPromote()
}
}
}
}
}
def withQAEnv(def body) {
withCredentials([string(credentialsId: 'ARTIFACTORY_PRIVATE_API_KEY', variable: 'ARTIFACTORY_API_KEY')]) {
body.call()
}
}
def withJava(jdk, def body) {
def javaHome = tool name: jdk, type: 'hudson.model.JDK'
withEnv(["JAVA_HOME=${javaHome}"]) {
body.call()
}
}
def configureRuntimes(jdk, def body) {
withQAEnv {
nodejs(configId: 'npm-artifactory', nodeJSInstallationName: 'NodeJS latest') {
withJava(jdk) {
withMaven(maven: MAVEN_TOOL) {
body.call()
}
}
}
}
}
def runIts(test, sqVersion, jdk) {
configureRuntimes(jdk) {
dir("sonarts-sq-plugin") {
mavenSetBuildVersion()
def mvnCommand = isUnix() ? 'mvn' : 'mvn.cmd'
dir("its/$test") {
sh "$mvnCommand -B -e -V -Dsonar.runtimeVersion=\"$sqVersion\" -Dmaven.test.redirectTestOutputToFile=false -Dorchestrator.artifactory.apiKey=${env.ARTIFACTORY_API_KEY} -Dorchestrator.configUrl=${env.ARTIFACTORY_URL}/orchestrator.properties/orch-h2.properties clean verify"
}
}
}
}