forked from FortnoxAB/alertmanager-bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
48 lines (39 loc) · 887 Bytes
/
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
node('go1.21') {
container('run'){
def newTag = ''
def tag = ''
def gitTag = ''
try {
stage('Checkout'){
checkout scm
gitTag = sh(script: 'git tag -l --contains HEAD', returnStdout: true).trim()
}
stage('Fetch dependencies'){
sh('go mod download')
}
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/alertmanager-bot:'+strippedTag, '--pull .')
}
stage('Push docker image'){
docker.withRegistry("https://quay.io", 'docker-registry') {
image.push()
}
}
}
} catch(err) {
throw err
}
}
}