Repository navigation
Expand file tree
/
Copy pathJenkinsfile
More file actions
43 lines (33 loc) · 1.33 KB
/
Copy pathJenkinsfile
File metadata and controls
43 lines (33 loc) · 1.33 KB
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
#!groovy
def dockerImageName = env.JOB_NAME.substring(env.JOB_NAME.lastIndexOf('/') + 1)
def dockerRegistry = &
54F5
#039;http://localhost:5000'
def dockerRepository = 'default'
def dockerCredentialsId = 'docker'
node {
stage('Checkout') {
checkout scm
}
def dockerImageTag = sh(returnStdout: true, script: 'git describe --all').trim().replaceAll(/(.*\/)?(.+)/,'$2')
def pushAsLatest = (dockerImageTag ==~ /v(\d+.\d+.\d+)/)
stage('Env') {
echo "*** Show env variables: ***" + \
"\n dockerRegistry: " + dockerRegistry + \
"\n dockerRepository: " + dockerRepository + \
"\n dockerCredentialsId: " + dockerCredentialsId + \
"\n dockerImageName: " + dockerImageName + \
"\n dockerImageTag: " + dockerImageTag
}
stage('Build & Push') {
docker.withRegistry(dockerRegistry, dockerCredentialsId) {
// Set repository and image name
def image = docker.build dockerRepository + "/" + dockerImageName, "--build-arg TAG=${dockerImageTag} ."
// Push actual tag
image.push(dockerImageTag)
// Push latest tag if it's a release
if (pushAsLatest) {
image.push('latest')
}
echo "*** Docker image successfully pushed to registry. ***"
}
}
}