@@ -5,32 +5,48 @@ pipeline {
5
5
}
6
6
agent any
7
7
environment {
8
- IMAGE_NAME = " nginx-proxy-manager"
9
- TEMP_IMAGE_NAME = " nginx-proxy-manager-build_${ BUILD_NUMBER} "
10
- TAG_VERSION = getPackageVersion()
8
+ IMAGE_NAME = " nginx-proxy-manager"
9
+ TEMP_IMAGE_NAME = " nginx-proxy-manager-build_${ BUILD_NUMBER} "
10
+ TEMP_IMAGE_NAME_ARM = " nginx-proxy-manager-arm-build_${ BUILD_NUMBER} "
11
+ TAG_VERSION = getPackageVersion()
11
12
}
12
13
stages {
13
14
stage(' Prepare' ) {
14
15
steps {
15
- sh ' docker pull jc21/$IMAGE_NAME-base'
16
- sh ' docker pull jc21/node'
17
16
sh ' docker pull $DOCKER_CI_TOOLS'
18
17
}
19
18
}
20
- stage(' Build' ) {
19
+ stage(' Build x86_64 ' ) {
21
20
steps {
22
- sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node yarn --registry=$NPM_REGISTRY install'
23
- sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node npm run-script build'
24
- sh ' rm -rf node_modules'
25
- sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node yarn --registry=$NPM_REGISTRY install --prod'
26
- sh ' docker run --rm -v $(pwd):/data $DOCKER_CI_TOOLS node-prune'
27
- sh ' docker build --squash --compress -t $TEMP_IMAGE_NAME .'
21
+ ansiColor(' xterm' ) {
22
+ sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node:latest yarn --registry=$NPM_REGISTRY install'
23
+ sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node:latest npm run-script build'
24
+ sh ' rm -rf node_modules'
25
+ sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node yarn --registry=$NPM_REGISTRY install --prod'
26
+ sh ' docker run --rm -v $(pwd):/data $DOCKER_CI_TOOLS node-prune'
27
+ sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_NAME .'
28
+ }
29
+ }
30
+ }
31
+ stage(' Build armhf' ) {
32
+ steps {
33
+ ansiColor(' xterm' ) {
34
+ sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node:armhf /usr/bin/qemu-arm-static yarn --registry=$NPM_REGISTRY install'
35
+ sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node:armhf /usr/bin/qemu-arm-static npm run-script build'
36
+ sh ' rm -rf node_modules'
37
+ sh ' docker run --rm -v $(pwd):/srv/app -w /srv/app jc21/node:armhf /usr/bin/qemu-arm-static yarn --registry=$NPM_REGISTRY install --prod'
38
+ sh ' docker run --rm -v $(pwd):/data $DOCKER_CI_TOOLS node-prune'
39
+ sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_NAME_ARM -f Dockerfile.armhf .'
40
+ }
28
41
}
29
42
}
30
43
stage(' Publish Private' ) {
31
44
steps {
32
45
sh ' docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
33
46
sh ' docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
47
+
48
+ sh ' docker tag $TEMP_IMAGE_NAME_ARM ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION-armhf'
49
+ sh ' docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION-armhf'
34
50
}
35
51
}
36
52
stage(' Publish Public' ) {
@@ -43,10 +59,16 @@ pipeline {
43
59
sh ' docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:latest'
44
60
sh ' docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
45
61
62
+ sh ' docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:latest-armhf'
63
+ sh ' docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
64
+
46
65
withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
47
66
sh " docker login -u '${ duser} ' -p '${ dpass} '"
48
67
sh ' docker push docker.io/jc21/$IMAGE_NAME:latest'
49
68
sh ' docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
69
+
70
+ sh ' docker push docker.io/jc21/$IMAGE_NAME:latest-armhf'
71
+ sh ' docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
50
72
}
51
73
}
52
74
}
@@ -58,10 +80,12 @@ pipeline {
58
80
sh ' docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:preview'
59
81
sh ' docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:preview'
60
82
sh ' docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:preview'
83
+ sh ' docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:preview-armhf'
61
84
62
85
withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
63
86
sh " docker login -u '${ duser} ' -p '${ dpass} '"
64
87
sh ' docker push docker.io/jc21/$IMAGE_NAME:preview'
88
+ sh ' docker push docker.io/jc21/$IMAGE_NAME:preview-armhf'
65
89
}
66
90
}
67
91
}
@@ -79,7 +103,8 @@ pipeline {
79
103
sh ' figlet "FAILURE"'
80
104
}
81
105
always {
82
- sh ' docker rmi $TEMP_IMAGE_NAME'
106
+ sh ' docker rmi $TEMP_IMAGE_NAME'
107
+ sh ' docker rmi $TEMP_IMAGE_NAME_ARM'
83
108
}
84
109
}
85
110
}
0 commit comments