-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathJenkinsfile
114 lines (114 loc) · 4.36 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
podTemplate(yaml: '''
apiVersion: v1
kind: Pod
spec:
containers:
- name: buildah
image: quay.io/buildah/stable:v1.29.0
command:
- sleep
args:
- 99d
securityContext:
privileged: true
env:
- name: REG_USERNAME
valueFrom:
secretKeyRef:
name: jenkins-registry-login
key: username
- name: REG_PASSWORD
valueFrom:
secretKeyRef:
name: jenkins-registry-login
key: password
- name: REG_HOSTNAME
valueFrom:
secretKeyRef:
name: jenkins-registry-login
key: hostname
- name: REG_FOLDER
valueFrom:
secretKeyRef:
name: jenkins-registry-login
key: folder
''') {
node(POD_LABEL) {
stage("checkout") {
checkout scm
script {
VERSION_NUMBER = VersionNumber(versionNumberString: '${BUILD_YEAR}${BUILDS_THIS_YEAR, XXX}')
currentBuild.displayName = "${VERSION_NUMBER}"
env.BUILD_NUMBER=VERSION_NUMBER
}
}
stage("dockerlogin") {
container('buildah') {
sh 'echo "${REG_PASSWORD}" | buildah login -u ${REG_USERNAME} --password-stdin ${REG_HOSTNAME}'
}
}
stage("dockerfile") {
container('buildah') {
sh 'buildah version && \
buildah build \
--build-arg REG_HOSTNAME=${REG_HOSTNAME} \
--build-arg REG_FOLDER=${REG_FOLDER} \
--build-arg BUILD_NUMBER=${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js:b${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js:latest .'
}
}
stage("dockerfile big") {
container('buildah') {
sh 'buildah version && \
buildah build -f docker/big/Dockerfile \
--build-arg REG_HOSTNAME=${REG_HOSTNAME} \
--build-arg REG_FOLDER=${REG_FOLDER} \
--build-arg BUILD_NUMBER=${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-big:b${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-big:latest .'
}
}
stage("dockerfile website-sync") {
container('buildah') {
dir('docker/website-sync') {
sh 'buildah version && \
buildah build \
--build-arg REG_HOSTNAME=${REG_HOSTNAME} \
--build-arg REG_FOLDER=${REG_FOLDER} \
--build-arg BUILD_NUMBER=${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-website-sync:b${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-website-sync:latest .'
}
}
}
stage("dockerfile database-sync") {
container('buildah') {
dir('docker/database-sync') {
sh 'buildah version && \
buildah build \
--build-arg REG_HOSTNAME=${REG_HOSTNAME} \
--build-arg REG_FOLDER=${REG_FOLDER} \
--build-arg BUILD_NUMBER=${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-database-sync:b${BUILD_NUMBER} \
-t ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-database-sync:latest .'
}
}
}
stage("dockerpush") {
container('buildah') {
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js:b${BUILD_NUMBER}'
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js:latest'
// push big
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-big:b${BUILD_NUMBER}'
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-big:latest'
// push website-sync
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-website-sync:b${BUILD_NUMBER}'
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-website-sync:latest'
// push database-sync
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-database-sync:b${BUILD_NUMBER}'
sh 'buildah push ${REG_HOSTNAME}/${REG_FOLDER}/kern.js-database-sync:latest'
}
}
}
}