-
Notifications
You must be signed in to change notification settings - Fork 4
/
Jenkinsfile
61 lines (60 loc) · 2.14 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
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /root/.m2:/root/.m2'
}
}
stages {
stage('Start') {
steps {
slackSend (color: '#FFFF00', message: "STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}
}
stage('Build') {
steps {
echo "Building"
sh 'mvn compile'
}
}
stage('Test'){
steps {
echo "Testing"
sh 'mvn test'
}
}
stage('SonarQube') {
steps {
withSonarQubeEnv('SonarQube') {
sh ' mvn clean install '
sh ' mvn sonar:sonar '
}
}
}
stage('Quality') {
steps {
sh 'sleep 30'
timeout(time:10, unit:'SECONDS') {
retry(5) {
script {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
}
}
}
}
post {
success {
slackSend(color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
slackSend(message: '', attachments: "[{'fallback': 'Link to SonarQube Report', color: '#FF00FF', 'actions': [{'type': 'button', 'text': 'SonarQube Report', 'url': 'http://128.31.25.108:9000/dashboard?id=edu.northeastern.cs5500%3Acs5500-project-team207'}]}]")
}
failure {
slackSend(color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
slackSend(message: '', attachments: "[{'fallback': 'Link to SonarQube Report', color: '#FF00FF', 'actions': [{'type': 'button', 'text': 'SonarQube Report', 'url': 'http://128.31.25.108:9000/dashboard?id=edu.northeastern.cs5500%3Acs5500-project-team207'}]}]")
}
}
}