11pipeline {
22 options {
3- buildDiscarder(logRotator(artifactDaysToKeepStr : ' ' , artifactNumToKeepStr : ' ' , daysToKeepStr : ' ' , numToKeepStr : ' 10' ))
3+ buildDiscarder(logRotator(numToKeepStr : ' 10' ))
44 disableConcurrentBuilds()
55 }
66 agent any
77 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-armhf-build_${ BUILD_NUMBER} "
11+ TAG_VERSION = getPackageVersion()
1112 }
1213 stages {
13- stage(' Prepare' ) {
14- steps {
15- sh ' docker pull jc21/$IMAGE_NAME-base'
16- sh ' docker pull $DOCKER_CI_TOOLS'
17- }
18- }
1914 stage(' Build' ) {
20- steps {
21- sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install'
22- sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base gulp build'
23- sh ' rm -rf node_modules'
24- sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install --prod'
25- sh ' docker run --rm -v $(pwd)/manager:/data $DOCKER_CI_TOOLS node-prune'
26- sh ' docker build --squash --compress -t $TEMP_IMAGE_NAME .'
27- }
28- }
29- stage(' Publish' ) {
30- when {
31- branch ' master'
32- }
33- steps {
34- sh ' docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:latest'
35- sh ' docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:latest'
36- sh ' docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
37- sh ' docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
38- sh ' docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:latest'
39- sh ' docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
15+ parallel {
16+ stage(' x86_64' ) {
17+ when {
18+ branch ' master'
19+ }
20+ steps {
21+ // Codebase
22+ sh ' docker pull jc21/$IMAGE_NAME-base'
23+ sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install'
24+ sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base gulp build'
25+ sh ' rm -rf node_modules'
26+ sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install --prod'
27+ sh ' docker run --rm -v $(pwd)/manager:/data $DOCKER_CI_TOOLS node-prune'
28+
29+ // Docker Build
30+ sh ' docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_NAME .'
31+
32+ // Private Registry
33+ sh ' docker tag $TEMP_IMAGE_NAME $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest'
34+ sh ' docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest'
35+ sh ' docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
36+ sh ' docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
37+
38+ // Dockerhub
39+ sh ' docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:latest'
40+ sh ' docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
41+
42+ withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
43+ sh " docker login -u '${ duser} ' -p '$dpass '"
44+ sh ' docker push docker.io/jc21/$IMAGE_NAME:latest'
45+ sh ' docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
46+ }
4047
41- withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
42- sh " docker login -u '${ duser} ' -p '$dpass '"
43- sh ' docker push docker.io/jc21/$IMAGE_NAME:latest'
44- sh ' docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
48+ sh ' docker rmi $TEMP_IMAGE_NAME'
49+ }
50+ }
51+ stage(' armhf' ) {
52+ when {
53+ branch ' master'
54+ }
55+ agent {
56+ label ' armhf'
57+ }
58+ steps {
59+ // Codebase
60+ sh ' docker pull jc21/$IMAGE_NAME-base:armhf'
61+ sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base:armhf yarn --registry=$NPM_REGISTRY install'
62+ sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base:armhf gulp build'
63+ sh ' rm -rf node_modules'
64+ sh ' docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base:armhf yarn --registry=$NPM_REGISTRY install --prod'
65+ sh ' docker run --rm -v $(pwd)/manager:/data $DOCKER_CI_TOOLS:latest-armhf node-prune'
66+
67+ // Docker Build
68+ sh ' docker build --pull --no-cache --squash --compress -f Dockerfile.armhf -t $TEMP_IMAGE_NAME_ARM .'
69+
70+ // Private Registry
71+ sh ' docker tag $TEMP_IMAGE_NAME_ARM $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-armhf'
72+ sh ' docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-armhf'
73+ sh ' docker tag $TEMP_IMAGE_NAME_ARM ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION-armhf'
74+ sh ' docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION-armhf'
75+
76+ // Dockerhub
77+ sh ' docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:latest-armhf'
78+ sh ' docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
79+
80+ withCredentials([usernamePassword(credentialsId : ' jc21-dockerhub' , passwordVariable : ' dpass' , usernameVariable : ' duser' )]) {
81+ sh " docker login -u '${ duser} ' -p '$dpass '"
82+ sh ' docker push docker.io/jc21/$IMAGE_NAME:latest-armhf'
83+ sh ' docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
84+ }
85+
86+ sh ' docker rmi $TEMP_IMAGE_NAME_ARM'
87+ }
4588 }
4689 }
4790 }
4891 }
49- triggers {
50- bitbucketPush()
51- }
5292 post {
5393 success {
5494 slackSend color : " #72c900" , message : " SUCCESS: <${ BUILD_URL} |${ JOB_NAME} > build #${ BUILD_NUMBER} - ${ currentBuild.durationString} "
@@ -58,9 +98,6 @@ pipeline {
5898 slackSend color : " #d61111" , message : " FAILED: <${ BUILD_URL} |${ JOB_NAME} > build #${ BUILD_NUMBER} - ${ currentBuild.durationString} "
5999 sh ' figlet "FAILURE"'
60100 }
61- always {
62- sh ' docker rmi $TEMP_IMAGE_NAME'
63- }
64101 }
65102}
66103
0 commit comments