forked from projetas/jobs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
72 lines (62 loc) · 1.94 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
import java.text.SimpleDateFormat
DATETIME = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date())
PROJECT_NAME = "jobs"
SONAR_PROJECT_NAME = "projetas/jobs"
SONAR_PROJECT_KEY = "projetas:jobs"
PROJECT_ENV = "DEVELOPMENT"
PROJECT_VERSION = "${env.BRANCH_NAME}-${BUILD_ID}"
node {
checkout()
checkPreconditions()
setup()
codeAnalysis()
codeQuality()
}
def checkout() {
stage("Checkout") {
checkout(scm)
}
}
def checkPreconditions() {
stage("Check preconditions") {
try {
sh("sudo chmod 7777 /var/run/docker.sock")
sh("sudo mkdir -p ${env.MVN_CACHE} && sudo chown -R $USER ${env.MVN_CACHE}")
} catch(e) {}
}
}
def setup() {
stage("Setup") {
}
}
def codeAnalysis() {
stage("Code analysis") {
withSonarQubeEnv {
def dockerImage = docker.image("swids/sonar-scanner:2.8")
dockerImage.inside() {
sh("/sonar-scanner/sonar-scanner-2.8/bin/sonar-scanner " +
"-Dsonar.login=${env.SONAR_CREDENTIALS} " +
"-Dsonar.host.url=https://sonar.projetas.com.br/ " +
"-Dsonar.projectKey=${SONAR_PROJECT_KEY} " +
"-Dsonar.projectName=${SONAR_PROJECT_NAME} " +
"-Dsonar.projectVersion=${PROJECT_VERSION} " +
"-Dsonar.branch=${env.BRANCH_NAME} " +
"-Dsonar.sources=. " +
"-Dsonar.sourceEncoding=UTF-8 " +
"-Dsonar.tests=. " +
"-Dsonar.test.inclusions=**/*Test*/** " +
"-Dsonar.exclusions=**/*Test*/**")
}
}
}
}
def codeQuality() {
stage("Code quality") {
timeout(time: 1, unit: "HOURS") {
def qg = waitForQualityGate()
if (qg.status != "OK") {
error("Pipeline aborted due to quality gate failure: ${qg.status}")
}
}
}
}