-
Notifications
You must be signed in to change notification settings - Fork 8
/
Jenkinsfile
58 lines (46 loc) · 1.19 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
node('go') {
def newTag = ''
def tag = ''
def gitTag = ''
try {
stage('Checkout'){
dir('/go/src/github.com/fortnoxab/alertmanager2hangoutschat'){
checkout scm
step([$class: 'StashNotifier'])
gitTag = sh(script: 'git tag -l --contains HEAD', returnStdout: true).trim()
}
}
dir('/go/src/github.com/fortnoxab/alertmanager2hangoutschat'){
stage('Fetch dependencies'){
sh('dep ensure')
}
stage('Run test'){
sh('go test -v ./...')
}
if(gitTag != ''){
tag = gitTag
}
if( tag != ''){
strippedTag = tag.replaceFirst('v', '')
stage('Build the application'){
echo "Building with docker tag ${strippedTag}"
sh('CGO_ENABLED=0 GOOS=linux go build')
}
stage('Generate docker image'){
image = docker.build('fortnox/alertmanager2hangoutschat:'+strippedTag, '--pull .')
}
stage('Push docker image'){
docker.withRegistry("https://quay.io", 'docker-registry') {
image.push()
}
}
}
}
currentBuild.result = 'SUCCESS'
} catch(err) {
currentBuild.result = 'FAILED' // Set result of currentBuild !Important!
step([$class: 'StashNotifier'])
throw err
}
step([$class: 'StashNotifier'])
}