@@ -5,12 +5,13 @@ pipeline {
5
5
}
6
6
agent any
7
7
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"
14
15
}
15
16
stages {
16
17
stage(' Prepare' ) {
@@ -144,6 +145,52 @@ pipeline {
144
145
}
145
146
}
146
147
}
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
+ }
147
194
}
148
195
}
149
196
}
0 commit comments