forked from FeatureIDE/FeatureIDE
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathJenkinsfile
78 lines (68 loc) · 2.68 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
script{
setBuildStatus = {String message, String context, String state ->
withCredentials([string(credentialsId: 'githubToken', variable: 'TOKEN')]) {
sh """
set -x
curl \"https://api.github.com/repos/FeatureIDE/FeatureIDE/statuses/$GIT_COMMIT?access_token=$TOKEN\" \
-H \"Content-Type: application/json\" \
-X POST \
-d \"{\\\"description\\\": \\\"$message\\\", \\\"state\\\": \\\"$state\\\", \\\"context\\\": \\\"$context\\\", \\\"target_url\\\": \\\"$BUILD_URL\\\"}\"
"""
}
}
}
pipeline {
agent any
tools {
maven 'Maven 3.5.2'
}
stages {
stage ('Initialize') {
steps {
script {
setBuildStatus("Compiling", "Jenkins build", "pending");
def causes = currentBuild.getBuildCauses('com.cloudbees.jenkins.GitHubPushCause').shortDescription
if(!causes) {
causes = currentBuild.getBuildCauses('hudson.model.Cause$UserIdCause').shortDescription
}
currentBuild.displayName = "#${BUILD_NUMBER} ${GIT_BRANCH} ${causes}"
}
sh '''
echo "PATH = ${PATH}"
echo "M2_HOME = ${M2_HOME}"
'''
}
}
stage ('Test') {
steps {
sh 'mvn clean test'
}
}
stage ('Package') {
steps {
sh 'mvn clean package'
}
}
}
post {
success{
script{
setBuildStatus("Build complete", "Jenkins build", "success")
}
}
unsuccessful {
script {
setBuildStatus("Failed", "Jenkins build", "failure")
def author = ""
if(currentBuild && !currentBuild.changeSets.isEmpty()) {
author += "Commit author: ${currentBuild.changeSets.getAt(0).getItems()[0].getAuthor()}"
} else {
author += "${currentBuild.getBuildCauses('hudson.model.Cause$UserIdCause').shortDescription}"
author = author.substring(1, author.length()-1)
}
def gitBranch = currentBuild.displayName.substring(currentBuild.displayName.indexOf('/')+1, currentBuild.displayName.indexOf('['))
emailext body: "Result can be found at:'${currentBuild.absoluteUrl}' \n \n${author} \n \nGitbranch: ${gitBranch} ", subject: "Failed Branch: ${gitBranch}", to: '[email protected]'
}
}
}
}