Skip to content

Commit 31ab201

Browse files
committed
Added CI pipeline
1 parent ab1c5ad commit 31ab201

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

Jenkinsfile

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
pipeline {
2+
options {
3+
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10'))
4+
disableConcurrentBuilds()
5+
}
6+
agent any
7+
environment {
8+
IMAGE_NAME = nginx-proxy-manager
9+
TEMP_IMAGE_NAME = nginx-proxy-manager-build_${BUILD_NUMBER}
10+
}
11+
stages {
12+
stage('Prepare') {
13+
steps {
14+
sh '''docker pull ${DOCKER_PRIVATE_REGISTRY}/nginx-proxy-manager-base
15+
docker pull ${DOCKER_CI_TOOLS}'''
16+
17+
sh '''CWD=`pwd`
18+
docker run --rm \\
19+
-v $CWD/manager:/srv/manager \\
20+
-w /srv/manager \\
21+
${DOCKER_PRIVATE_REGISTRY}/nginx-proxy-manager-base \\
22+
npm --registry=$NPM_REGISTRY install
23+
exit $?'''
24+
25+
sh '''CWD=`pwd`
26+
docker run --rm -v $CWD/manager:/srv/manager -w /srv/manager ${DOCKER_PRIVATE_REGISTRY}/nginx-proxy-manager-base gulp build
27+
exit $?'''
28+
29+
sh '''CWD=`pwd`
30+
docker run --rm -e NODE_ENV=production -v $CWD/manager:/srv/manager -w /srv/manager ${DOCKER_PRIVATE_REGISTRY}/nginx-proxy-manager-base npm prune --production
31+
exit $?'''
32+
33+
sh '''docker run --rm \\
34+
-v $CWD/manager:/data \\
35+
${DOCKER_CI_TOOLS} \\
36+
node-prune```
37+
}
38+
}
39+
}
40+
stage('Build') {
41+
steps {
42+
TAG_VERSION = sh (
43+
script: 'docker run --rm -v $(pwd)/manager:/data ${DOCKER_CI_TOOLS} bash -c "cat /data/package.json|jq -r \'.version\'"',
44+
returnStdout: true
45+
).trim()
46+
47+
sh '''docker build -t ${TEMP_IMAGE_NAME} .
48+
exit $?'''
49+
}
50+
}
51+
stage('Publish') {
52+
steps {
53+
sh '''docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:latest
54+
docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:latest
55+
exit $?'''
56+
57+
sh '''docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION
58+
docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION
59+
exit $?'''
60+
61+
sh '''docker tag $TEMP_IMAGE_NAME docker-io/jc21/$IMAGE_NAME:latest
62+
docker push docker-io/jc21/$IMAGE_NAME:latest
63+
exit $?'''
64+
65+
sh '''docker tag $TEMP_IMAGE_NAME docker-io/jc21/$IMAGE_NAME:$TAG_VERSION
66+
docker push docker-io/jc21/$IMAGE_NAME:$TAG_VERSION
67+
exit $?'''
68+
}
69+
}
70+
}
71+
triggers {
72+
bitbucketPush()
73+
}
74+
post {
75+
success {
76+
slackSend color: "#72c900", message: "SUCCESS: <${BUILD_URL}|${JOB_NAME}> build #${BUILD_NUMBER} - Duration: ${currentBuild.durationString}"
77+
}
78+
failure {
79+
slackSend color: "#d61111", message: "FAILED: <${BUILD_URL}|${JOB_NAME}> build #${BUILD_NUMBER} - Duration: ${currentBuild.durationString}"
80+
}
81+
}
82+
}

0 commit comments

Comments
 (0)