-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
52 lines (45 loc) · 1 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
library 'whatsout'
node('go1.21') {
container('run'){
def newTag = ''
def tag = ''
def gitTag = ''
try {
stage('Checkout'){
checkout scm
notifyBitbucket()
gitTag = sh(script: 'git tag -l --contains HEAD', returnStdout: true).trim()
}
stage('Fetch dependencies'){
sh('go mod download')
}
stage('Run test'){
sh('make test')
}
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/config-reloader:'+strippedTag, '--pull .')
}
stage('Push docker image'){
docker.withRegistry("https://quay.io", 'docker-registry') {
image.push()
}
}
}
currentBuild.result = 'SUCCESS'
} catch(err) {
currentBuild.result = 'FAILED'
notifyBitbucket()
throw err
}
notifyBitbucket()
}
}