@@ -12,6 +12,7 @@ pipeline {
1212 TEMP_IMAGE_ARM64 = " nginx-proxy-manager-arm64-build_${ BUILD_NUMBER} "
1313 TAG_VERSION = getPackageVersion()
1414 MAJOR_VERSION = " 2"
15+ BRANCH_LOWER = " ${ BRANCH_NAME.toLowerCase()} "
1516 }
1617 stages {
1718 stage(' Build PR' ) {
@@ -21,23 +22,27 @@ pipeline {
2122 steps {
2223 ansiColor(' xterm' ) {
2324 // Codebase
24- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE yarn install'
25- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE npm run-script build'
25+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} yarn install'
26+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} npm run-script build'
2627 sh ' rm -rf node_modules'
27- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE yarn install --prod'
28- sh ' docker run --rm -v $(pwd):/data $DOCKER_CI_TOOLS node-prune'
28+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} yarn install --prod'
29+ sh ' docker run --rm -v $(pwd):/data ${ DOCKER_CI_TOOLS} node-prune'
2930
3031 // Docker Build
31- sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE .'
32+ sh ' docker build --pull --no-cache --squash --compress -t ${ TEMP_IMAGE} .'
3233
3334 // Private Registry
34- sh ' docker tag $TEMP_IMAGE $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:$BRANCH_NAME '
35+ sh ' docker tag ${ TEMP_IMAGE} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:github-${BRANCH_LOWER} '
3536 withCredentials([usernamePassword(credentialsId : ' jc21-private-registry' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
36- sh " docker login -u '${ duser} ' -p '$dpass ' $DOCKER_PRIVATE_REGISTRY "
37- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:$BRANCH_NAME '
37+ sh " docker login -u '${ duser} ' -p '${ dpass} ' ${ DOCKER_PRIVATE_REGISTRY} "
38+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:github-${BRANCH_LOWER} '
3839 }
3940
40- sh ' docker rmi $TEMP_IMAGE'
41+ sh ' docker rmi ${TEMP_IMAGE}'
42+
43+ script {
44+ def comment = pullRequest. comment(" Docker Image for build ${ BUILD_NUMBER} is available on [DockerHub](https://cloud.docker.com/repository/docker/jc21/${ IMAGE} ) as `jc21/${ IMAGE} :github-${ BRANCH_LOWER} `" )
45+ }
4146 }
4247 }
4348 }
@@ -48,30 +53,30 @@ pipeline {
4853 steps {
4954 ansiColor(' xterm' ) {
5055 // Codebase
51- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE yarn install'
52- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE npm run-script build'
56+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} yarn install'
57+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} npm run-script build'
5358 sh ' rm -rf node_modules'
54- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE yarn install --prod'
55- sh ' docker run --rm -v $(pwd):/data $DOCKER_CI_TOOLS node-prune'
59+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} yarn install --prod'
60+ sh ' docker run --rm -v $(pwd):/data ${ DOCKER_CI_TOOLS} node-prune'
5661
5762 // Docker Build
58- sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE .'
63+ sh ' docker build --pull --no-cache --squash --compress -t ${ TEMP_IMAGE} .'
5964
6065 // Dockerhub
61- sh ' docker tag $TEMP_IMAGE docker.io/jc21/$IMAGE:develop'
66+ sh ' docker tag ${ TEMP_IMAGE} docker.io/jc21/${ IMAGE} :develop'
6267 withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
63- sh " docker login -u '${ duser} ' -p '$dpass '"
64- sh ' docker push docker.io/jc21/$IMAGE:develop'
68+ sh " docker login -u '${ duser} ' -p '${ dpass} '"
69+ sh ' docker push docker.io/jc21/${ IMAGE} :develop'
6570 }
6671
6772 // Private Registry
68- sh ' docker tag $TEMP_IMAGE $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:develop'
73+ sh ' docker tag ${ TEMP_IMAGE} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :develop'
6974 withCredentials([usernamePassword(credentialsId : ' jc21-private-registry' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
70- sh " docker login -u '${ duser} ' -p '$dpass ' $DOCKER_PRIVATE_REGISTRY "
71- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:develop'
75+ sh " docker login -u '${ duser} ' -p '${ dpass} ' ${ DOCKER_PRIVATE_REGISTRY} "
76+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :develop'
7277 }
7378
74- sh ' docker rmi $TEMP_IMAGE'
79+ sh ' docker rmi ${ TEMP_IMAGE} '
7580 }
7681 }
7782 }
@@ -84,40 +89,40 @@ pipeline {
8489 steps {
8590 ansiColor(' xterm' ) {
8691 // Codebase
87- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE yarn install'
88- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE npm run-script build'
92+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} yarn install'
93+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} npm run-script build'
8994 sh ' rm -rf node_modules'
90- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE yarn install --prod'
91- sh ' docker run --rm -v $(pwd):/data $DOCKER_CI_TOOLS node-prune'
95+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} yarn install --prod'
96+ sh ' docker run --rm -v $(pwd):/data ${ DOCKER_CI_TOOLS} node-prune'
9297
9398 // Docker Build
94- sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE .'
99+ sh ' docker build --pull --no-cache --squash --compress -t ${ TEMP_IMAGE} .'
95100
96101 // Dockerhub
97- sh ' docker tag $TEMP_IMAGE docker.io/jc21/$IMAGE:$ TAG_VERSION'
98- sh ' docker tag $TEMP_IMAGE docker.io/jc21/$IMAGE:$ MAJOR_VERSION'
99- sh ' docker tag $TEMP_IMAGE docker.io/jc21/$IMAGE:latest'
102+ sh ' docker tag ${ TEMP_IMAGE} docker.io/jc21/${ IMAGE}:${ TAG_VERSION} '
103+ sh ' docker tag ${ TEMP_IMAGE} docker.io/jc21/${ IMAGE}:${ MAJOR_VERSION} '
104+ sh ' docker tag ${ TEMP_IMAGE} docker.io/jc21/${ IMAGE} :latest'
100105
101106 withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
102- sh " docker login -u '${ duser} ' -p '$dpass '"
103- sh ' docker push docker.io/jc21/$IMAGE:$ TAG_VERSION'
104- sh ' docker push docker.io/jc21/$IMAGE:$ MAJOR_VERSION'
105- sh ' docker push docker.io/jc21/$IMAGE:latest'
107+ sh " docker login -u '${ duser} ' -p '${ dpass} '"
108+ sh ' docker push docker.io/jc21/${ IMAGE}:${ TAG_VERSION} '
109+ sh ' docker push docker.io/jc21/${ IMAGE}:${ MAJOR_VERSION} '
110+ sh ' docker push docker.io/jc21/${ IMAGE} :latest'
106111 }
107112
108113 // Private Registry
109- sh ' docker tag $TEMP_IMAGE $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ TAG_VERSION'
110- sh ' docker tag $TEMP_IMAGE $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ MAJOR_VERSION'
111- sh ' docker tag $TEMP_IMAGE $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:latest'
114+ sh ' docker tag ${ TEMP_IMAGE} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ TAG_VERSION} '
115+ sh ' docker tag ${ TEMP_IMAGE} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ MAJOR_VERSION} '
116+ sh ' docker tag ${ TEMP_IMAGE} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :latest'
112117
113118 withCredentials([usernamePassword(credentialsId : ' jc21-private-registry' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
114- sh " docker login -u '${ duser} ' -p '$dpass ' $DOCKER_PRIVATE_REGISTRY "
115- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ TAG_VERSION'
116- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ MAJOR_VERSION'
117- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:latest'
119+ sh " docker login -u '${ duser} ' -p '${ dpass} ' ${ DOCKER_PRIVATE_REGISTRY} "
120+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ TAG_VERSION} '
121+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ MAJOR_VERSION} '
122+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :latest'
118123 }
119124
120- sh ' docker rmi $TEMP_IMAGE'
125+ sh ' docker rmi ${ TEMP_IMAGE} '
121126 }
122127 }
123128 }
@@ -131,39 +136,39 @@ pipeline {
131136 steps {
132137 ansiColor(' xterm' ) {
133138 // Codebase
134- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE:armhf yarn install'
135- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE:armhf npm run-script build'
139+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} :armhf yarn install'
140+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} :armhf npm run-script build'
136141 sh ' rm -rf node_modules'
137- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE:armhf yarn install --prod'
142+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} :armhf yarn install --prod'
138143
139144 // Docker Build
140- sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_ARM -f Dockerfile.armhf .'
145+ sh ' docker build --pull --no-cache --squash --compress -t ${ TEMP_IMAGE_ARM} -f Dockerfile.armhf .'
141146
142147 // Dockerhub
143- sh ' docker tag $TEMP_IMAGE_ARM docker.io/jc21/$IMAGE:$ TAG_VERSION-armhf'
144- sh ' docker tag $TEMP_IMAGE_ARM docker.io/jc21/$IMAGE:$ MAJOR_VERSION-armhf'
145- sh ' docker tag $TEMP_IMAGE_ARM docker.io/jc21/$IMAGE:latest-armhf'
148+ sh ' docker tag ${ TEMP_IMAGE_ARM} docker.io/jc21/${ IMAGE}:${ TAG_VERSION} -armhf'
149+ sh ' docker tag ${ TEMP_IMAGE_ARM} docker.io/jc21/${ IMAGE}:${ MAJOR_VERSION} -armhf'
150+ sh ' docker tag ${ TEMP_IMAGE_ARM} docker.io/jc21/${ IMAGE} :latest-armhf'
146151
147152 withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
148- sh " docker login -u '${ duser} ' -p '$dpass '"
149- sh ' docker push docker.io/jc21/$IMAGE:$ TAG_VERSION-armhf'
150- sh ' docker push docker.io/jc21/$IMAGE:$ MAJOR_VERSION-armhf'
151- sh ' docker push docker.io/jc21/$IMAGE:latest-armhf'
153+ sh " docker login -u '${ duser} ' -p '${ dpass} '"
154+ sh ' docker push docker.io/jc21/${ IMAGE}:${ TAG_VERSION} -armhf'
155+ sh ' docker push docker.io/jc21/${ IMAGE}:${ MAJOR_VERSION} -armhf'
156+ sh ' docker push docker.io/jc21/${ IMAGE} :latest-armhf'
152157 }
153158
154159 // Private Registry
155- sh ' docker tag $TEMP_IMAGE_ARM $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ TAG_VERSION-armhf'
156- sh ' docker tag $TEMP_IMAGE_ARM $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ MAJOR_VERSION-armhf'
157- sh ' docker tag $TEMP_IMAGE_ARM $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:latest-armhf'
160+ sh ' docker tag ${ TEMP_IMAGE_ARM} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ TAG_VERSION} -armhf'
161+ sh ' docker tag ${ TEMP_IMAGE_ARM} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ MAJOR_VERSION} -armhf'
162+ sh ' docker tag ${ TEMP_IMAGE_ARM} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :latest-armhf'
158163
159164 withCredentials([usernamePassword(credentialsId : ' jc21-private-registry' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
160- sh " docker login -u '${ duser} ' -p '$dpass ' $DOCKER_PRIVATE_REGISTRY "
161- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ TAG_VERSION-armhf'
162- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ MAJOR_VERSION-armhf'
163- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:latest-armhf'
165+ sh " docker login -u '${ duser} ' -p '${ dpass} ' ${ DOCKER_PRIVATE_REGISTRY} "
166+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ TAG_VERSION} -armhf'
167+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ MAJOR_VERSION} -armhf'
168+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :latest-armhf'
164169 }
165170
166- sh ' docker rmi $TEMP_IMAGE_ARM'
171+ sh ' docker rmi ${ TEMP_IMAGE_ARM} '
167172 }
168173 }
169174 }
@@ -177,39 +182,39 @@ pipeline {
177182 steps {
178183 ansiColor(' xterm' ) {
179184 // Codebase
180- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE:arm64 yarn install'
181- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE:arm64 npm run-script build'
185+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} :arm64 yarn install'
186+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} :arm64 npm run-script build'
182187 sh ' sudo rm -rf node_modules'
183- sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE:arm64 yarn install --prod'
188+ sh ' docker run --rm -v $(pwd):/app -w /app ${ BASE_IMAGE} :arm64 yarn install --prod'
184189
185190 // Docker Build
186- sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_ARM64 -f Dockerfile.arm64 .'
191+ sh ' docker build --pull --no-cache --squash --compress -t ${ TEMP_IMAGE_ARM64} -f Dockerfile.arm64 .'
187192
188193 // Dockerhub
189- sh ' docker tag $TEMP_IMAGE_ARM64 docker.io/jc21/$IMAGE:$ TAG_VERSION-arm64'
190- sh ' docker tag $TEMP_IMAGE_ARM64 docker.io/jc21/$IMAGE:$ MAJOR_VERSION-arm64'
191- sh ' docker tag $TEMP_IMAGE_ARM64 docker.io/jc21/$IMAGE:latest-arm64'
194+ sh ' docker tag ${ TEMP_IMAGE_ARM64} docker.io/jc21/${ IMAGE}:${ TAG_VERSION} -arm64'
195+ sh ' docker tag ${ TEMP_IMAGE_ARM64} docker.io/jc21/${ IMAGE}:${ MAJOR_VERSION} -arm64'
196+ sh ' docker tag ${ TEMP_IMAGE_ARM64} docker.io/jc21/${ IMAGE} :latest-arm64'
192197
193198 withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
194- sh " docker login -u '${ duser} ' -p '$dpass '"
195- sh ' docker push docker.io/jc21/$IMAGE:$ TAG_VERSION-arm64'
196- sh ' docker push docker.io/jc21/$IMAGE:$ MAJOR_VERSION-arm64'
197- sh ' docker push docker.io/jc21/$IMAGE:latest-arm64'
199+ sh " docker login -u '${ duser} ' -p '${ dpass} '"
200+ sh ' docker push docker.io/jc21/${ IMAGE}:${ TAG_VERSION} -arm64'
201+ sh ' docker push docker.io/jc21/${ IMAGE}:${ MAJOR_VERSION} -arm64'
202+ sh ' docker push docker.io/jc21/${ IMAGE} :latest-arm64'
198203 }
199204
200205 // Private Registry
201- sh ' docker tag $TEMP_IMAGE_ARM64 $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ TAG_VERSION-arm64'
202- sh ' docker tag $TEMP_IMAGE_ARM64 $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ MAJOR_VERSION-arm64'
203- sh ' docker tag $TEMP_IMAGE_ARM64 $ DOCKER_PRIVATE_REGISTRY/$ IMAGE:latest-arm64'
206+ sh ' docker tag ${ TEMP_IMAGE_ARM64} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ TAG_VERSION} -arm64'
207+ sh ' docker tag ${ TEMP_IMAGE_ARM64} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ MAJOR_VERSION} -arm64'
208+ sh ' docker tag ${ TEMP_IMAGE_ARM64} ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :latest-arm64'
204209
205210 withCredentials([usernamePassword(credentialsId : ' jc21-private-registry' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
206- sh " docker login -u '${ duser} ' -p '$dpass ' $DOCKER_PRIVATE_REGISTRY "
207- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ TAG_VERSION-arm64'
208- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:$ MAJOR_VERSION-arm64'
209- sh ' docker push $DOCKER_PRIVATE_REGISTRY/$ IMAGE:latest-arm64'
211+ sh " docker login -u '${ duser} ' -p '${ dpass} ' ${ DOCKER_PRIVATE_REGISTRY} "
212+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ TAG_VERSION} -arm64'
213+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE}:${ MAJOR_VERSION} -arm64'
214+ sh ' docker push ${ DOCKER_PRIVATE_REGISTRY}/${ IMAGE} :latest-arm64'
210215 }
211216
212- sh ' docker rmi $TEMP_IMAGE_ARM64'
217+ sh ' docker rmi ${ TEMP_IMAGE_ARM64} '
213218
214219 // Hack to clean up ec2 instance for next build
215220 sh ' sudo chown -R ec2-user:ec2-user *'
@@ -232,7 +237,7 @@ pipeline {
232237}
233238
234239def getPackageVersion () {
235- ver = sh(script : ' docker run --rm -v $(pwd):/data $DOCKER_CI_TOOLS bash -c "cat /data/package.json|jq -r \' .version\' "' , returnStdout : true )
240+ ver = sh(script : ' docker run --rm -v $(pwd):/data ${ DOCKER_CI_TOOLS} bash -c "cat /data/package.json|jq -r \' .version\' "' , returnStdout : true )
236241 return ver. trim()
237242}
238243
0 commit comments