Skip to content
Permalink
Newer
Older
100644 135 lines (110 sloc) 3.49 KB
1
node('docker') {
3
stage 'Checkout'
4
5
checkout scm
7
stage 'Acquire util'
Jim Van Fleet
Sep 12, 2016
9
sh 'mkdir -p tmp && mkdir -p bin'
10
dir('tmp'){
11
git([ url: "https://github.internet2.edu/docker/util.git",
12
credentialsId: "jenkins-github-access-token" ])
Jim Van Fleet
Sep 12, 2016
13
sh 'mv ./bin/* ../bin/.'
Jim Van Fleet
Sep 12, 2016
15
sh 'rm -rf tmp'
Jim Van Fleet
Sep 12, 2016
17
stage 'Setting build context'
18
19
def maintainer = maintainer()
20
def imagename = imagename()
21
def tag
22
23
// Tag images created on master branch with 'latest'
24
if(env.BRANCH_NAME == "master"){
25
tag = "latest"
26
}else{
27
tag = env.BRANCH_NAME
28
}
29
30
if(!imagename){
31
echo "You must define an imagename in common.bash"
32
currentBuild.result = 'FAILURE'
Jim Van Fleet
Sep 12, 2016
33
sh 'exit 1'
34
}
35
if(maintainer){
36
echo "Building ${imagename}:${tag} for ${maintainer}"
37
}
38
39
stage 'Acquire conftree'
40
41
sh 'mkdir -p root'
42
dir('root'){
43
git([ url: "https://github.internet2.edu/docker/shib-idp-conftree.git",
44
branch: "test", credentialsId: "jenkins-github-access-token" ])
Jim Van Fleet
Sep 12, 2016
46
47
stage 'Build haproxy'
48
49
try{
50
dir('haproxy'){
51
sh 'docker build --rm -t my/haproxy . > debug'
Jim Van Fleet
Sep 12, 2016
52
sh 'rm debug'
Jim Van Fleet
Sep 12, 2016
53
}
54
} catch(error) {
Jim Van Fleet
Sep 12, 2016
55
def error_details = readFile('haproxy/debug');
Jim Van Fleet
Sep 12, 2016
56
def message = "BUILD ERROR: There was a problem building Shibboleth appliance haproxy image (${tag}). \n\n ${error_details}"
Jim Van Fleet
Sep 12, 2016
57
sh "rm -f haproxy/debug"
Jim Van Fleet
Sep 12, 2016
58
handleError(message, tag)
Jim Van Fleet
Sep 12, 2016
61
stage 'Build'
62
try{
63
sh 'bin/rebuild.sh &> debug'
64
} catch(error) {
65
def error_details = readFile('./debug');
66
def message = "BUILD ERROR: There was a problem building Shibboleth appliance image (${tag}). \n\n ${error_details}"
67
sh "rm -f ./debug"
68
handleError(message, tag)
69
}
Jim Van Fleet
Sep 12, 2016
71
stage 'Compose'
72
try{
73
sh 'bin/compose.sh &> debug'
74
} catch(error) {
75
def error_details = readFile('./debug');
76
def message = "BUILD ERROR: There was a problem composing Shibboleth appliance (${tag}). \n\n ${error_details}"
77
sh "rm -f ./debug"
78
handleError(message, tag)
79
}
81
stage 'Tests'
Jim Van Fleet
Sep 12, 2016
83
try{
84
sh 'bin/test.sh &> debug'
85
} catch(error) {
86
def error_details = readFile('./debug');
87
def message = "BUILD ERROR: There was a problem testing Shibboleth appliance :${tag}. \n\n ${error_details}"
88
sh "rm -f ./debug"
89
handleError(message, tag)
90
}
Jim Van Fleet
Sep 12, 2016
92
stage 'Clean Up'
Jim Van Fleet
Sep 12, 2016
94
cleanup(tag)
Jim Van Fleet
Aug 8, 2016
95
Jim Van Fleet
Sep 12, 2016
96
stage 'Notify'
97
98
slackSend color: 'good', message: "Shibboleth-appliance (${tag}) passes test battery"
99
100
}
101
102
def maintainer() {
103
def matcher = readFile('common.bash') =~ 'maintainer="(.+)"'
104
matcher ? matcher[0][1] : 'tier'
105
}
106
107
def imagename() {
108
def matcher = readFile('common.bash') =~ 'imagename="(.+)"'
109
matcher ? matcher[0][1] : null
110
}
Jim Van Fleet
Sep 12, 2016
112
def handleError(String message, String tag, Boolean doCleanup = true){
113
echo "${message}"
114
currentBuild.setResult("FAILED")
115
slackSend color: 'danger', message: "${message}"
116
//step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'chris.bynum@levvel.io', sendToIndividuals: true])
117
if (doCleanup) {
118
cleanup(tag)
119
}
120
sh 'exit 1'
Jim Van Fleet
Sep 12, 2016
122
123
def cleanup(String tag) {
124
try{
125
sh 'bin/decompose.sh &> debug'
Jim Van Fleet
Oct 18, 2016
126
sh 'docker rm haproxy'
127
sh 'docker rmi my/haproxy'
Jim Van Fleet
Sep 12, 2016
128
sh 'bin/prune.sh &> debug'
129
} catch(error) {
130
def error_details = readFile('./debug');
131
def message = "BUILD ERROR: There was a problem cleaning up Shibboleth appliance :${tag}. \n\n ${error_details}"
132
sh "rm -f ./debug"
133
handleError(message, tag, false)
134
}
135
}
You can’t perform that action at this time.