@@ -5,12 +5,13 @@ pipeline {
55 }
66 agent any
77 environment {
8- IMAGE_NAME = " nginx-proxy-manager"
9- BASE_IMAGE_NAME = " jc21/nginx-proxy-manager-base:latest"
10- TEMP_IMAGE_NAME = " nginx-proxy-manager-build_${ BUILD_NUMBER} "
11- TEMP_IMAGE_NAME_ARM = " nginx-proxy-manager-arm-build_${ BUILD_NUMBER} "
12- TAG_VERSION = getPackageVersion()
13- MAJOR_VERSION = " 2"
8+ IMAGE_NAME = " nginx-proxy-manager"
9+ BASE_IMAGE_NAME = " jc21/nginx-proxy-manager-base:latest"
10+ TEMP_IMAGE_NAME = " nginx-proxy-manager-build_${ BUILD_NUMBER} "
11+ TEMP_IMAGE_NAME_ARM = " nginx-proxy-manager-arm-build_${ BUILD_NUMBER} "
12+ TEMP_IMAGE_NAME_ARM64 = " nginx-proxy-manager-arm64-build_${ BUILD_NUMBER} "
13+ TAG_VERSION = getPackageVersion()
14+ MAJOR_VERSION = " 2"
1415 }
1516 stages {
1617 stage(' Prepare' ) {
@@ -144,6 +145,52 @@ pipeline {
144145 }
145146 }
146147 }
148+ stage(' arm64' ) {
149+ when {
150+ branch ' master'
151+ }
152+ agent {
153+ label ' arm64'
154+ }
155+ steps {
156+ ansiColor(' xterm' ) {
157+ // Codebase
158+ sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE_NAME-arm64 yarn install'
159+ sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE_NAME-arm64 npm run-script build'
160+ sh ' rm -rf node_modules'
161+ sh ' docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE_NAME-arm64 yarn install --prod'
162+
163+ // Docker Build
164+ sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_NAME_ARM64 -f Dockerfile.arm64 .'
165+
166+ // Dockerhub
167+ sh ' docker tag $TEMP_IMAGE_NAME_ARM64 docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-arm64'
168+ sh ' docker tag $TEMP_IMAGE_NAME_ARM64 docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION-arm64'
169+ sh ' docker tag $TEMP_IMAGE_NAME_ARM64 docker.io/jc21/$IMAGE_NAME:latest-arm64'
170+
171+ withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
172+ sh " docker login -u '${ duser} ' -p '$dpass '"
173+ sh ' docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-arm64'
174+ sh ' docker push docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION-arm64'
175+ sh ' docker push docker.io/jc21/$IMAGE_NAME:latest-arm64'
176+ }
177+
178+ // Private Registry
179+ sh ' docker tag $TEMP_IMAGE_NAME_ARM64 $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION-arm64'
180+ sh ' docker tag $TEMP_IMAGE_NAME_ARM64 $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION-arm64'
181+ sh ' docker tag $TEMP_IMAGE_NAME_ARM64 $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-arm64'
182+
183+ withCredentials([usernamePassword(credentialsId : ' jc21-private-registry' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
184+ sh " docker login -u '${ duser} ' -p '$dpass ' $DOCKER_PRIVATE_REGISTRY "
185+ sh ' docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION-arm64'
186+ sh ' docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION-arm64'
187+ sh ' docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-arm64'
188+ }
189+
190+ sh ' docker rmi $TEMP_IMAGE_NAME_ARM64'
191+ }
192+ }
193+ }
147194 }
148195 }
149196 }
0 commit comments