From bd15e105f2ce158e3a296f2857ef4024930f1b4e Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 02:42:36 +0000 Subject: [PATCH 01/58] Create TEST.md testing --- TEST.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 TEST.md diff --git a/TEST.md b/TEST.md new file mode 100644 index 0000000000..ac11dd7437 --- /dev/null +++ b/TEST.md @@ -0,0 +1 @@ +Just testing the webhook From f5aed25bfd2673c4c17aef0745be01b8fdc5e686 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 02:47:04 +0000 Subject: [PATCH 02/58] Update TEST.md 2nd test --- TEST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TEST.md b/TEST.md index ac11dd7437..1f79673b90 100644 --- a/TEST.md +++ b/TEST.md @@ -1 +1,2 @@ Just testing the webhook +second test From c003ba57b192ffa81beff26953fd3eae72473a58 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 02:53:10 +0000 Subject: [PATCH 03/58] Update TEST.md 3rd test --- TEST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TEST.md b/TEST.md index 1f79673b90..8483fbe73e 100644 --- a/TEST.md +++ b/TEST.md @@ -1,2 +1,3 @@ Just testing the webhook second test +3rd test From 0ec0904641b47a9421c0dee933332e4d873f2aa1 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:01:55 +0000 Subject: [PATCH 04/58] again --- TEST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TEST.md b/TEST.md index 8483fbe73e..6e6b762c1d 100644 --- a/TEST.md +++ b/TEST.md @@ -1,3 +1,4 @@ Just testing the webhook second test 3rd test +again From 41d2bb7e2ce23f59f62a842f3d1e73c920f08fb1 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:13:45 +0000 Subject: [PATCH 05/58] and again --- TEST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TEST.md b/TEST.md index 6e6b762c1d..d9d4e98e00 100644 --- a/TEST.md +++ b/TEST.md @@ -2,3 +2,4 @@ Just testing the webhook second test 3rd test again +and again From e878b603d43ed844d0b4311173cd83f4147f4014 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:14:44 +0000 Subject: [PATCH 06/58] again --- TEST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TEST.md b/TEST.md index d9d4e98e00..db72f5e6a0 100644 --- a/TEST.md +++ b/TEST.md @@ -2,4 +2,4 @@ Just testing the webhook second test 3rd test again -and again +and again again From 3cf8141f0878cdf02601d272b5e0ce1e4051e8e9 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:18:56 +0000 Subject: [PATCH 07/58] again --- TEST.md | 1 - 1 file changed, 1 deletion(-) diff --git a/TEST.md b/TEST.md index db72f5e6a0..6e6b762c1d 100644 --- a/TEST.md +++ b/TEST.md @@ -2,4 +2,3 @@ Just testing the webhook second test 3rd test again -and again again From ffbb5b45470c4638f069c1016ce898f72cfbe93b Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:26:19 +0000 Subject: [PATCH 08/58] again --- TEST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TEST.md b/TEST.md index 6e6b762c1d..09d2560c73 100644 --- a/TEST.md +++ b/TEST.md @@ -2,3 +2,4 @@ Just testing the webhook second test 3rd test again +again From a14a5bd7b16181eb0e8f20cbb55ac243e9751fc9 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:34:22 +0000 Subject: [PATCH 09/58] try --- TEST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TEST.md b/TEST.md index 09d2560c73..0c7ff75178 100644 --- a/TEST.md +++ b/TEST.md @@ -3,3 +3,4 @@ second test 3rd test again again +last try From 9a480570d5f7155e68fc179f24f4f1a1e2fafc6e Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:36:35 +0000 Subject: [PATCH 10/58] clean-up --- TEST.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/TEST.md b/TEST.md index 0c7ff75178..5b6fa75466 100644 --- a/TEST.md +++ b/TEST.md @@ -1,6 +1,2 @@ Just testing the webhook -second test -3rd test -again -again -last try +Clean up From eef188ad3963bc3b4dd11bf5299c45b2d299c06d Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:48:39 +0000 Subject: [PATCH 11/58] added build status badge --- worker/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 worker/README.md diff --git a/worker/README.md b/worker/README.md new file mode 100644 index 0000000000..a186b9be28 --- /dev/null +++ b/worker/README.md @@ -0,0 +1,4 @@ +## Worker Java App + +* Build Status +[![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-build)](http://localhost:8080/job/instavote/job/worker-build/) From a3ee3b5788e8603e36a27bcedc6fc0e4ebe012e6 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:56:06 +0000 Subject: [PATCH 12/58] worker test build status badge --- worker/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/worker/README.md b/worker/README.md index a186b9be28..4b07b7e5c1 100644 --- a/worker/README.md +++ b/worker/README.md @@ -1,4 +1,9 @@ ## Worker Java App +# Worker Build * Build Status [![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-build)](http://localhost:8080/job/instavote/job/worker-build/) + +# Worker Test +* Build Status +[![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-test)](http://localhost:8080/job/instavote/job/worker-test/) From 02d346e919a1e354f5fcc4db03cb95016703b16d Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:56:33 +0000 Subject: [PATCH 13/58] appropriate headers --- worker/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worker/README.md b/worker/README.md index 4b07b7e5c1..3231249e6c 100644 --- a/worker/README.md +++ b/worker/README.md @@ -1,9 +1,9 @@ ## Worker Java App -# Worker Build +### Worker Build * Build Status [![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-build)](http://localhost:8080/job/instavote/job/worker-build/) -# Worker Test +### Worker Test * Build Status [![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-test)](http://localhost:8080/job/instavote/job/worker-test/) From 057680b7ce438fffe567b118de836ca77e900dc3 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 03:58:28 +0000 Subject: [PATCH 14/58] worker package build status badge --- worker/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/worker/README.md b/worker/README.md index 3231249e6c..4194658fd7 100644 --- a/worker/README.md +++ b/worker/README.md @@ -7,3 +7,7 @@ ### Worker Test * Build Status [![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-test)](http://localhost:8080/job/instavote/job/worker-test/) + +### Worker Package +* Build Status +[![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-package)](http://localhost:8080/job/instavote/job/worker-package/) From f4a69c347e289d7f7d7c679fc67f19c502a5ca6c Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 04:16:33 +0000 Subject: [PATCH 15/58] worker test subject --- worker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worker/README.md b/worker/README.md index 4194658fd7..6a6b144862 100644 --- a/worker/README.md +++ b/worker/README.md @@ -6,7 +6,7 @@ ### Worker Test * Build Status -[![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-test)](http://localhost:8080/job/instavote/job/worker-test/) +[![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-test&subject=Unittest)](http://localhost:8080/job/instavote/job/worker-test/) ### Worker Package * Build Status From 6ef73f0744d4ba122de8fa560fb19a7a8bfa071d Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 04:21:32 +0000 Subject: [PATCH 16/58] color --- worker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worker/README.md b/worker/README.md index 6a6b144862..9cba23485f 100644 --- a/worker/README.md +++ b/worker/README.md @@ -2,7 +2,7 @@ ### Worker Build * Build Status -[![Build Status](http://localhost:8080/buildStatus/icon?job=instavote%2Fworker-build)](http://localhost:8080/job/instavote/job/worker-build/) +[!BuildStatus](http://localhost:8080/job/instavote/job/worker-build/)(http://localhost:8080/job/instavote/job/worker-build/) ### Worker Test * Build Status From 4b4e090119acccea942487fa1127024df531d5a7 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 04:21:52 +0000 Subject: [PATCH 17/58] color 2 --- worker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worker/README.md b/worker/README.md index 9cba23485f..7ff9bfa6c8 100644 --- a/worker/README.md +++ b/worker/README.md @@ -2,7 +2,7 @@ ### Worker Build * Build Status -[!BuildStatus](http://localhost:8080/job/instavote/job/worker-build/)(http://localhost:8080/job/instavote/job/worker-build/) +[!BuildStatus](http://localhost:8080/job/instavote/job/worker-build/) ### Worker Test * Build Status From acf179fe96121fd87db310a882f298aaf370a965 Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 1 Nov 2022 15:10:22 +0000 Subject: [PATCH 18/58] badge --- worker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worker/README.md b/worker/README.md index 7ff9bfa6c8..831bbe16a3 100644 --- a/worker/README.md +++ b/worker/README.md @@ -2,7 +2,7 @@ ### Worker Build * Build Status -[!BuildStatus](http://localhost:8080/job/instavote/job/worker-build/) +![GitHub branch checks state](https://img.shields.io/github/checks-status/cheloghm/example-voting-app/master) ### Worker Test * Build Status From 2133fd5168d988719e4c1ae2fc0c78c65d88a161 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Tue, 1 Nov 2022 16:05:39 +0000 Subject: [PATCH 19/58] added application info --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b8ad8a94af..513c42d635 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ Example Voting App ========= +This ia a sample instavote application. + Getting started --------------- From b339f3285a6cb6f6ecdd3efb1c73aa9e7fa52a73 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Tue, 1 Nov 2022 20:02:10 +0000 Subject: [PATCH 20/58] added Jenkinsfile for worker with build job --- worker/Jenkinsfile | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 worker/Jenkinsfile diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile new file mode 100644 index 0000000000..f8af31d5cc --- /dev/null +++ b/worker/Jenkinsfile @@ -0,0 +1,35 @@ +pipeline{ + + agent any + + tools{ + maven 'Maven 3.8.6' + } + + stages{ + stage('build'){ + steps{ + echo 'Compiling worker app' + dir('worker'){ + sh 'mvn compile' + } + } + } + stage('test'){ + steps{ + echo 'Running unit Tests on worker app' + } + } + stage('package'){ + steps{ + echo 'Packaging worker app' + } + } + } + + post{ + always{ + echo 'Build pipeline for worker is complete...' + } + } +} \ No newline at end of file From e9a38922148fd4773337e1c706c3f4716bc55893 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Tue, 1 Nov 2022 21:10:07 +0000 Subject: [PATCH 21/58] added test and package jobs to worker pipeline --- worker/Jenkinsfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index f8af31d5cc..68a54daf6b 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -18,18 +18,24 @@ pipeline{ stage('test'){ steps{ echo 'Running unit Tests on worker app' + dir('worker'){ + sh 'mvn clean test' + } } } stage('package'){ steps{ echo 'Packaging worker app' + dir('worker'){ + sh 'mvn package' + } } } } post{ always{ - echo 'Build pipeline for worker is complete...' + echo 'Pipeline for worker is complete...' } } } \ No newline at end of file From f599152e65183395ab899685a4c6e16a6fba8b14 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Tue, 1 Nov 2022 21:28:43 +0000 Subject: [PATCH 22/58] archive artifacts, skip tests while packaging --- worker/Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 68a54daf6b..6c8db60a82 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -27,7 +27,7 @@ pipeline{ steps{ echo 'Packaging worker app' dir('worker'){ - sh 'mvn package' + sh 'mvn package -DskipTests' } } } @@ -35,6 +35,7 @@ pipeline{ post{ always{ + archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true echo 'Pipeline for worker is complete...' } } From bd444178e509dd407d8e47b7cb5a410920263b22 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Tue, 1 Nov 2022 22:08:01 +0000 Subject: [PATCH 23/58] run packaging step only on master, run stages only when worker code changes --- worker/Jenkinsfile | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 6c8db60a82..9e565f24c8 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -8,6 +8,9 @@ pipeline{ stages{ stage('build'){ + when{ + changeset "**/worker/**" + } steps{ echo 'Compiling worker app' dir('worker'){ @@ -16,6 +19,9 @@ pipeline{ } } stage('test'){ + when{ + changeset "**/worker/**" + } steps{ echo 'Running unit Tests on worker app' dir('worker'){ @@ -24,10 +30,16 @@ pipeline{ } } stage('package'){ + when{ + branch 'master' + changeset "**/worker/**" + } steps{ echo 'Packaging worker app' dir('worker'){ sh 'mvn package -DskipTests' + archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true + } } } @@ -35,7 +47,6 @@ pipeline{ post{ always{ - archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true echo 'Pipeline for worker is complete...' } } From d5349656ae6f1f3fedcd8f2933b8baa67af3388b Mon Sep 17 00:00:00 2001 From: cheloghm Date: Wed, 2 Nov 2022 01:48:43 +0000 Subject: [PATCH 24/58] added slack notifications --- worker/Jenkinsfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 9e565f24c8..c67bccf673 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -49,5 +49,12 @@ pipeline{ always{ echo 'Pipeline for worker is complete...' } + failure{ + slackSend (channel: "instavote-ci", message: "Build Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + success{ + echo 'Pipeline for worker is complete...' + slackSend (channel: "instavote-ci", message: "Build Succeeded - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } } } \ No newline at end of file From 3958167685a9ad73c9de9933bcfe6eacbea64e71 Mon Sep 17 00:00:00 2001 From: kicksgray <111619639+kicksgray@users.noreply.github.com> Date: Wed, 2 Nov 2022 02:00:15 +0000 Subject: [PATCH 25/58] Revert "Feature/workpipe" --- worker/Jenkinsfile | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index c67bccf673..6c8db60a82 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -8,9 +8,6 @@ pipeline{ stages{ stage('build'){ - when{ - changeset "**/worker/**" - } steps{ echo 'Compiling worker app' dir('worker'){ @@ -19,9 +16,6 @@ pipeline{ } } stage('test'){ - when{ - changeset "**/worker/**" - } steps{ echo 'Running unit Tests on worker app' dir('worker'){ @@ -30,16 +24,10 @@ pipeline{ } } stage('package'){ - when{ - branch 'master' - changeset "**/worker/**" - } steps{ echo 'Packaging worker app' dir('worker'){ sh 'mvn package -DskipTests' - archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true - } } } @@ -47,14 +35,8 @@ pipeline{ post{ always{ + archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true echo 'Pipeline for worker is complete...' } - failure{ - slackSend (channel: "instavote-ci", message: "Build Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") - } - success{ - echo 'Pipeline for worker is complete...' - slackSend (channel: "instavote-ci", message: "Build Succeeded - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") - } } } \ No newline at end of file From be16b2235e8d502eff3d764d8d6197bc8b0668bd Mon Sep 17 00:00:00 2001 From: cheloghm Date: Wed, 2 Nov 2022 03:05:40 +0000 Subject: [PATCH 26/58] added jenkinsfile for result app --- result/Jenkinsfile | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 result/Jenkinsfile diff --git a/result/Jenkinsfile b/result/Jenkinsfile new file mode 100644 index 0000000000..72ebd84523 --- /dev/null +++ b/result/Jenkinsfile @@ -0,0 +1,47 @@ +pipeline{ + + agent any + + tools{ + nodejs 'NodeJS 8.9.0' + } + + stages{ + stage('build'){ + when{ + changeset "**/result/**" + } + steps{ + echo 'Compiling result app' + dir('result'){ + sh 'npm install' + } + } + } + stage('test'){ + when{ + changeset "**/result/**" + } + steps{ + echo 'Running unit Tests on result app' + dir('result'){ + sh 'npm install' + sh 'npm test' + } + } + } + } + + post{ + always{ + echo 'Pipeline for result is complete...' + } + failure{ + slackSend (channel: "instavote-ci", message: "Build Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + success{ + echo 'Pipeline for result is complete...' + slackSend (channel: "instavote-ci", message: "Build Succeeded - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + } +} \ No newline at end of file From c4dadd33c051878d4b22955478f80907c06084bc Mon Sep 17 00:00:00 2001 From: cheloghm Date: Wed, 2 Nov 2022 03:15:39 +0000 Subject: [PATCH 27/58] added a mock test --- result/test/mock.test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/result/test/mock.test.js b/result/test/mock.test.js index f99dfdae97..bdcd486e79 100644 --- a/result/test/mock.test.js +++ b/result/test/mock.test.js @@ -26,4 +26,10 @@ describe('mock test 4', () => { }); }); +describe('mock test 5', () => { + it('unit test 5', () => { + expect(true).to.be.true; + }); +}); + From 52d3790b4da55ea30d5685ab1c5127d39006b89e Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 11:31:22 +0000 Subject: [PATCH 28/58] added pipeline code for vote app --- vote/Jenkinsfile | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 vote/Jenkinsfile diff --git a/vote/Jenkinsfile b/vote/Jenkinsfile new file mode 100644 index 0000000000..94a2ec7c19 --- /dev/null +++ b/vote/Jenkinsfile @@ -0,0 +1,47 @@ +pipeline{ + + agent{ + docker{ + image 'python:2.7.16-slim' + } + } + + stages{ + stage('build'){ + when{ + changeset "**/vote/**" + } + steps{ + echo 'Compiling vote app' + dir('vote'){ + sh 'pip install -r requirements.txt' + } + } + } + stage('test'){ + when{ + changeset "**/vote/**" + } + steps{ + echo 'Running unit Tests on vote app' + dir('vote'){ + sh 'nosetests -v' + } + } + } + + } + + post{ + always{ + echo 'Pipeline for vote is complete...' + } + failure{ + slackSend (channel: "instavote-ci", message: "Build Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + success{ + echo 'Pipeline for vote is complete...' + slackSend (channel: "instavote-ci", message: "Build Succeeded - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + } +} \ No newline at end of file From 3a006f0542b47567c2a9b0653c2b6ec0b8e0b77f Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 14:23:04 +0000 Subject: [PATCH 29/58] mock change --- vote/tests/test_frontend.py | 1 - 1 file changed, 1 deletion(-) diff --git a/vote/tests/test_frontend.py b/vote/tests/test_frontend.py index 5e3d37a3d1..1171e29d7f 100644 --- a/vote/tests/test_frontend.py +++ b/vote/tests/test_frontend.py @@ -10,7 +10,6 @@ def setUp(self): self.app = app.test_client() self.app.testing = True - def test_home_status_code(self): """Assert that the home page loads successfully""" result = self.app.get('/') From 9dab278c5155ed1e9143c898c3272910f6ae8517 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 14:29:34 +0000 Subject: [PATCH 30/58] run build containers as root --- result/Jenkinsfile | 1 + vote/Jenkinsfile | 1 + 2 files changed, 2 insertions(+) diff --git a/result/Jenkinsfile b/result/Jenkinsfile index 72ebd84523..5fff40dc60 100644 --- a/result/Jenkinsfile +++ b/result/Jenkinsfile @@ -4,6 +4,7 @@ pipeline{ tools{ nodejs 'NodeJS 8.9.0' + args '-v $HOME/.m2:/root/.m2' } stages{ diff --git a/vote/Jenkinsfile b/vote/Jenkinsfile index 94a2ec7c19..366e721cbf 100644 --- a/vote/Jenkinsfile +++ b/vote/Jenkinsfile @@ -3,6 +3,7 @@ pipeline{ agent{ docker{ image 'python:2.7.16-slim' + args '--user root' } } From 2f5b651480cd357fea7733250fd118eac29b94d1 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 14:36:21 +0000 Subject: [PATCH 31/58] try to correct doocker --- vote/Jenkinsfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vote/Jenkinsfile b/vote/Jenkinsfile index 366e721cbf..03ff029fed 100644 --- a/vote/Jenkinsfile +++ b/vote/Jenkinsfile @@ -1,10 +1,10 @@ pipeline{ agent{ - docker{ - image 'python:2.7.16-slim' - args '--user root' - } + docker{ + image 'python:2.7.16-slim' + args '--user root' + } } stages{ From c352cb6d3e97ef3ef5f1fedbf14036b5681b907d Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 16:12:37 +0000 Subject: [PATCH 32/58] added docker based agent to worker app --- worker/Jenkinsfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index c67bccf673..24581e8662 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -1,9 +1,10 @@ pipeline{ - agent any - - tools{ - maven 'Maven 3.8.6' + agent{ + docker{ + image: 'maven:3.8.6' + args: '-v $HOME/.m2/root/.m2' + } } stages{ From 7f3f3691993e61f840ad0abea1365bff010405fb Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 16:22:18 +0000 Subject: [PATCH 33/58] corrected result app Jenkinsfile --- result/Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/result/Jenkinsfile b/result/Jenkinsfile index 5fff40dc60..9c4ed268a0 100644 --- a/result/Jenkinsfile +++ b/result/Jenkinsfile @@ -4,7 +4,7 @@ pipeline{ tools{ nodejs 'NodeJS 8.9.0' - args '-v $HOME/.m2:/root/.m2' + // args '-v $HOME/.m2:/root/.m2' } stages{ From e35e33cfeb3527c301eadc30cb8244c9ab2b127a Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 16:30:39 +0000 Subject: [PATCH 34/58] corrected docker syntax in worker app Jenkinsfile --- worker/Jenkinsfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 24581e8662..dea322dc44 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -1,10 +1,10 @@ pipeline{ agent{ - docker{ - image: 'maven:3.8.6' - args: '-v $HOME/.m2/root/.m2' - } + docker{ + image: 'maven:3.8.6' + args: '-v $HOME/.m2/root/.m2' + } } stages{ From 64f8bb655ae57f5015c51ad1e16e97d6e936e331 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Fri, 4 Nov 2022 16:34:25 +0000 Subject: [PATCH 35/58] removed column after keyword in docker agent implementation, in the worker app Jenkinsfile --- worker/Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index dea322dc44..190c066d7d 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -2,8 +2,8 @@ pipeline{ agent{ docker{ - image: 'maven:3.8.6' - args: '-v $HOME/.m2/root/.m2' + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' } } From a4904c1ba3a25a79614fdf4791800714c5134b50 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 00:59:09 +0000 Subject: [PATCH 36/58] added dockerfile for worker app --- worker/Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 worker/Dockerfile diff --git a/worker/Dockerfile b/worker/Dockerfile new file mode 100644 index 0000000000..463956bad0 --- /dev/null +++ b/worker/Dockerfile @@ -0,0 +1,11 @@ +FROM maven:3.8.6 + +WORKDIR /app + +COPY . . + +RUN mvn package -DskipTests && \ + mv target/worker-jar-with-dependencies.jar /run/worker.jar && \ + rm -rf * + +CMD java -jar /run/worker.jar From 83592a5e0c9025ca30d92f7c57ae97d6a74da8ac Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 01:35:38 +0000 Subject: [PATCH 37/58] added docker package stage --- worker/Jenkinsfile | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 190c066d7d..76f1ae0960 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -40,7 +40,22 @@ pipeline{ dir('worker'){ sh 'mvn package -DskipTests' archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true - + } + } + } + stage('docker-package'){ + when{ + branch 'master' + changeset "**/worker/**" + } + steps{ + echo 'Packaging worker app with docker' + script{ + docker.withRegistry('https://index.docker.io/v1', 'dockerlogin'){ + def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") + workerImage.push() + workerImage.push("${env.BRANCH_NAME}") + } } } } From 4de831985963778b68f15d8c65b8aed60f7072c7 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 01:40:18 +0000 Subject: [PATCH 38/58] test --- worker/Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 76f1ae0960..f9c80cf23f 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -45,7 +45,6 @@ pipeline{ } stage('docker-package'){ when{ - branch 'master' changeset "**/worker/**" } steps{ From 5a1552831dad01ef4ebd6fe6fa053e9116b00c71 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 01:54:12 +0000 Subject: [PATCH 39/58] use stage specific agents --- worker/Jenkinsfile | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index f9c80cf23f..b7c98a52fa 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -1,14 +1,15 @@ pipeline{ - agent{ - docker{ - image 'maven:3.8.6' - args '-v $HOME/.m2/root/.m2' - } - } + agent none stages{ stage('build'){ + agent{ + docker{ + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' + } + } when{ changeset "**/worker/**" } @@ -20,6 +21,12 @@ pipeline{ } } stage('test'){ + agent{ + docker{ + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' + } + } when{ changeset "**/worker/**" } @@ -31,6 +38,12 @@ pipeline{ } } stage('package'){ + agent{ + docker{ + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' + } + } when{ branch 'master' changeset "**/worker/**" @@ -44,6 +57,7 @@ pipeline{ } } stage('docker-package'){ + agent any when{ changeset "**/worker/**" } From ba520d2b934682500f9fa04f7ca41fc3b7b91948 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 02:04:56 +0000 Subject: [PATCH 40/58] added trailing / to the docker url --- worker/Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index b7c98a52fa..d0dc8a32ee 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -64,7 +64,7 @@ pipeline{ steps{ echo 'Packaging worker app with docker' script{ - docker.withRegistry('https://index.docker.io/v1', 'dockerlogin'){ + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") workerImage.push() workerImage.push("${env.BRANCH_NAME}") From e5327cd9f8abaf621bb695cf81772cbd20a5c5be Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 02:20:26 +0000 Subject: [PATCH 41/58] comment test --- worker/Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index d0dc8a32ee..2a3cb4197a 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -67,7 +67,7 @@ pipeline{ docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") workerImage.push() - workerImage.push("${env.BRANCH_NAME}") + // workerImage.push("${env.BRANCH_NAME}") } } } From d8d6e04b3a58db3968488e7ec912d2ebf03bad44 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 02:45:49 +0000 Subject: [PATCH 42/58] added master branch conditional tag i docker-package again --- worker/Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 2a3cb4197a..b177430ed4 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -60,6 +60,7 @@ pipeline{ agent any when{ changeset "**/worker/**" + branch 'master' } steps{ echo 'Packaging worker app with docker' @@ -67,7 +68,7 @@ pipeline{ docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") workerImage.push() - // workerImage.push("${env.BRANCH_NAME}") + workerImage.push("${env.BRANCH_NAME}") } } } From 2ec6026c9061ae1b2c361714a4aab5ced4c97449 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 20:16:55 +0000 Subject: [PATCH 43/58] - added docker build and publish stage - use per stage agent - updated test steps for result and vote apps --- result/Jenkinsfile | 34 ++++++++++++++++++++++++++++------ vote/Jenkinsfile | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 59 insertions(+), 12 deletions(-) diff --git a/result/Jenkinsfile b/result/Jenkinsfile index 9c4ed268a0..047395d101 100644 --- a/result/Jenkinsfile +++ b/result/Jenkinsfile @@ -1,14 +1,14 @@ pipeline{ - agent any - - tools{ - nodejs 'NodeJS 8.9.0' - // args '-v $HOME/.m2:/root/.m2' - } + agent none stages{ stage('build'){ + agent{ + docker{ + nodejs 'NodeJS 8.9.0' + } + } when{ changeset "**/result/**" } @@ -20,6 +20,11 @@ pipeline{ } } stage('test'){ + agent{ + docker{ + nodejs 'NodeJS 8.9.0' + } + } when{ changeset "**/result/**" } @@ -31,6 +36,23 @@ pipeline{ } } } + stage('docker-package'){ + agent any + when{ + changeset "**/result/**" + branch 'master' + } + steps{ + echo 'Packaging result app with docker' + script{ + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def resultImage = docker.build("cheloghm/result:v${env.BUILD_ID}", "./result") + resultImage.push() + resultImage.push("${env.BRANCH_NAME}") + } + } + } + } } post{ diff --git a/vote/Jenkinsfile b/vote/Jenkinsfile index 03ff029fed..6714dcc495 100644 --- a/vote/Jenkinsfile +++ b/vote/Jenkinsfile @@ -1,14 +1,15 @@ pipeline{ - agent{ - docker{ - image 'python:2.7.16-slim' - args '--user root' - } - } + agent none stages{ stage('build'){ + agent{ + docker{ + image 'python:2.7.16-slim' + args '--user root' + } + } when{ changeset "**/vote/**" } @@ -20,16 +21,40 @@ pipeline{ } } stage('test'){ + agent{ + docker{ + image 'python:2.7.16-slim' + args '--user root' + } + } when{ changeset "**/vote/**" } steps{ echo 'Running unit Tests on vote app' dir('vote'){ + sh 'pip install -r requirements.txt' sh 'nosetests -v' } } } + stage('docker-package'){ + agent any + when{ + changeset "**/vote/**" + branch 'master' + } + steps{ + echo 'Packaging vote app with docker' + script{ + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def voteImage = docker.build("cheloghm/vote:v${env.BUILD_ID}", "./vote") + voteImage.push() + voteImage.push("${env.BRANCH_NAME}") + } + } + } + } } From 2a93386a68d7f6a8b2c5289c0e9a8a633d9e9ed7 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Sat, 5 Nov 2022 22:06:26 +0000 Subject: [PATCH 44/58] edited the Jenkinsfile to tage image as latest and not branch name --- result/Jenkinsfile | 2 +- vote/Jenkinsfile | 2 +- worker/Jenkinsfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/result/Jenkinsfile b/result/Jenkinsfile index 047395d101..972866977b 100644 --- a/result/Jenkinsfile +++ b/result/Jenkinsfile @@ -48,7 +48,7 @@ pipeline{ docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def resultImage = docker.build("cheloghm/result:v${env.BUILD_ID}", "./result") resultImage.push() - resultImage.push("${env.BRANCH_NAME}") + resultImage.push("latest") } } } diff --git a/vote/Jenkinsfile b/vote/Jenkinsfile index 6714dcc495..219afdac3d 100644 --- a/vote/Jenkinsfile +++ b/vote/Jenkinsfile @@ -50,7 +50,7 @@ pipeline{ docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def voteImage = docker.build("cheloghm/vote:v${env.BUILD_ID}", "./vote") voteImage.push() - voteImage.push("${env.BRANCH_NAME}") + voteImage.push("latest") } } } diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index b177430ed4..5d600ccb1c 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -68,7 +68,7 @@ pipeline{ docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") workerImage.push() - workerImage.push("${env.BRANCH_NAME}") + workerImage.push("latest") } } } From a463dc9d9daaea664631c615ee0f119e0d7812cd Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 00:55:22 +0000 Subject: [PATCH 45/58] added docker-compose spec --- docker-compose.yaml | 50 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 docker-compose.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000000..114380b2c8 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,50 @@ + +version: "3.8" + +volumes: + db-data: + +networks: + instavote: + driver: bridge + +services: + vote: + image: cheloghm/vote:latest + ports: + - 5002:80 + depends_on: + - redis + networks: + - instavote + + redis: + image: redis:alpine + networks: + - instavote + + db: + image: postgres:9.4 + volumes: + - "db-data:/var/lib/postgresql/data" + networks: + - instavote + environment: + - POSTGRES_HOST_AUTH_METHOD=trust + + result: + image: cheloghm/result:latest + ports: + - 5003:4000 + depends_on: + - db + networks: + - instavote + + worker: + image: cheloghm/worker:latest + depends_on: + - redis + - db + networks: + - instavote \ No newline at end of file From 4aca695a79162dc670d171d562e0fcdb6f8d7043 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 01:56:33 +0000 Subject: [PATCH 46/58] added Jenkinsfile to create a single pipeline for all the micro services --- Jenkinsfile | 194 ++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yaml | 4 +- 2 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..ea681f01ea --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,194 @@ +pipeline{ + + agent none + + stages{ + stage('worker build'){ + agent{ + docker{ + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' + } + } + when{ + changeset "**/worker/**" + } + steps{ + echo 'Compiling worker app' + dir('worker'){ + sh 'mvn compile' + } + } + } + stage('worker test'){ + agent{ + docker{ + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' + } + } + when{ + changeset "**/worker/**" + } + steps{ + echo 'Running unit Tests on worker app' + dir('worker'){ + sh 'mvn clean test' + } + } + } + stage('worker package'){ + agent{ + docker{ + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' + } + } + when{ + branch 'master' + changeset "**/worker/**" + } + steps{ + echo 'Packaging worker app' + dir('worker'){ + sh 'mvn package -DskipTests' + archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true + } + } + } + stage('worker-docker-package'){ + agent any + when{ + changeset "**/worker/**" + branch 'master' + } + steps{ + echo 'Packaging worker app with docker' + script{ + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") + workerImage.push() + workerImage.push("latest") + } + } + } + } + + stage('vote build'){ + agent{ + docker{ + image 'python:2.7.16-slim' + args '--user root' + } + } + when{ + changeset "**/vote/**" + } + steps{ + echo 'Compiling vote app' + dir('vote'){ + sh 'pip install -r requirements.txt' + } + } + } + stage('vote test'){ + agent{ + docker{ + image 'python:2.7.16-slim' + args '--user root' + } + } + when{ + changeset "**/vote/**" + } + steps{ + echo 'Running unit Tests on vote app' + dir('vote'){ + sh 'pip install -r requirements.txt' + sh 'nosetests -v' + } + } + } + stage('vote-docker-package'){ + agent any + when{ + changeset "**/vote/**" + branch 'master' + } + steps{ + echo 'Packaging vote app with docker' + script{ + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def voteImage = docker.build("cheloghm/vote:v${env.BUILD_ID}", "./vote") + voteImage.push() + voteImage.push("latest") + } + } + } + } + + stage('result build'){ + agent{ + docker{ + nodejs 'NodeJS 8.9.0' + } + } + when{ + changeset "**/result/**" + } + steps{ + echo 'Compiling result app' + dir('result'){ + sh 'npm install' + } + } + } + stage('result test'){ + agent{ + docker{ + nodejs 'NodeJS 8.9.0' + } + } + when{ + changeset "**/result/**" + } + steps{ + echo 'Running unit Tests on result app' + dir('result'){ + sh 'npm install' + sh 'npm test' + } + } + } + stage('result-docker-package'){ + agent any + when{ + changeset "**/result/**" + branch 'master' + } + steps{ + echo 'Packaging result app with docker' + script{ + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def resultImage = docker.build("cheloghm/result:v${env.BUILD_ID}", "./result") + resultImage.push() + resultImage.push("latest") + } + } + } + } + } + + post{ + always{ + echo 'Pipeline for instavote app is complete...' + } + failure{ + slackSend (channel: "instavote-ci", message: "Build Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + success{ + echo 'Pipeline for worker is complete...' + slackSend (channel: "instavote-ci", message: "Build Succeeded - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + } +} \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 114380b2c8..dfd70e3d75 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,4 +1,3 @@ - version: "3.8" volumes: @@ -11,6 +10,7 @@ networks: services: vote: image: cheloghm/vote:latest + build: ./vote ports: - 5002:80 depends_on: @@ -34,6 +34,7 @@ services: result: image: cheloghm/result:latest + build: ./vote ports: - 5003:4000 depends_on: @@ -43,6 +44,7 @@ services: worker: image: cheloghm/worker:latest + build: ./vote depends_on: - redis - db From 6700e236d4f3c30a788d9df4442663895221ff30 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 02:36:04 +0000 Subject: [PATCH 47/58] corrections --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ea681f01ea..98aad9996d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -130,7 +130,7 @@ pipeline{ stage('result build'){ agent{ docker{ - nodejs 'NodeJS 8.9.0' + image 'NodeJS 8.9.0' } } when{ @@ -146,7 +146,7 @@ pipeline{ stage('result test'){ agent{ docker{ - nodejs 'NodeJS 8.9.0' + image 'NodeJS 8.9.0' } } when{ From 70375393ba8c1dc81eb0cdfbfbdfa37dc8fa35be Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Mon, 7 Nov 2022 02:43:12 +0000 Subject: [PATCH 48/58] Added Jenkinsfile --- Jenkinsfile | 397 ++++++++++++++++++++++++++++------------------------ 1 file changed, 211 insertions(+), 186 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 98aad9996d..ae22161e63 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,194 +1,219 @@ -pipeline{ - - agent none - - stages{ - stage('worker build'){ - agent{ - docker{ - image 'maven:3.8.6' - args '-v $HOME/.m2/root/.m2' - } - } - when{ - changeset "**/worker/**" - } - steps{ - echo 'Compiling worker app' - dir('worker'){ - sh 'mvn compile' - } - } - } - stage('worker test'){ - agent{ - docker{ - image 'maven:3.8.6' - args '-v $HOME/.m2/root/.m2' - } - } - when{ - changeset "**/worker/**" - } - steps{ - echo 'Running unit Tests on worker app' - dir('worker'){ - sh 'mvn clean test' - } - } - } - stage('worker package'){ - agent{ - docker{ - image 'maven:3.8.6' - args '-v $HOME/.m2/root/.m2' - } - } - when{ - branch 'master' - changeset "**/worker/**" - } - steps{ - echo 'Packaging worker app' - dir('worker'){ - sh 'mvn package -DskipTests' - archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true - } - } - } - stage('worker-docker-package'){ - agent any - when{ - changeset "**/worker/**" - branch 'master' - } - steps{ - echo 'Packaging worker app with docker' - script{ - docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ - def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") - workerImage.push() - workerImage.push("latest") - } - } - } - } - - stage('vote build'){ - agent{ - docker{ - image 'python:2.7.16-slim' - args '--user root' - } - } - when{ - changeset "**/vote/**" - } - steps{ - echo 'Compiling vote app' - dir('vote'){ - sh 'pip install -r requirements.txt' - } - } - } - stage('vote test'){ - agent{ - docker{ - image 'python:2.7.16-slim' - args '--user root' - } - } - when{ - changeset "**/vote/**" - } - steps{ - echo 'Running unit Tests on vote app' - dir('vote'){ - sh 'pip install -r requirements.txt' - sh 'nosetests -v' - } - } - } - stage('vote-docker-package'){ - agent any - when{ - changeset "**/vote/**" - branch 'master' - } - steps{ - echo 'Packaging vote app with docker' - script{ - docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ - def voteImage = docker.build("cheloghm/vote:v${env.BUILD_ID}", "./vote") - voteImage.push() - voteImage.push("latest") - } - } - } - } - - stage('result build'){ - agent{ - docker{ - image 'NodeJS 8.9.0' - } - } - when{ - changeset "**/result/**" - } - steps{ - echo 'Compiling result app' - dir('result'){ - sh 'npm install' - } - } - } - stage('result test'){ - agent{ - docker{ - image 'NodeJS 8.9.0' - } - } - when{ - changeset "**/result/**" - } - steps{ - echo 'Running unit Tests on result app' - dir('result'){ - sh 'npm install' - sh 'npm test' - } - } - } - stage('result-docker-package'){ - agent any - when{ - changeset "**/result/**" - branch 'master' - } - steps{ - echo 'Packaging result app with docker' - script{ - docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ - def resultImage = docker.build("cheloghm/result:v${env.BUILD_ID}", "./result") - resultImage.push() - resultImage.push("latest") - } - } - } +pipeline { + agent none + stages { + stage('worker build') { + agent { + docker { + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' } + + } + when { + changeset '**/worker/**' + } + steps { + echo 'Compiling worker app' + dir(path: 'worker') { + sh 'mvn compile' + } + + } + } + + stage('worker test') { + agent { + docker { + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' + } + + } + when { + changeset '**/worker/**' + } + steps { + echo 'Running unit Tests on worker app' + dir(path: 'worker') { + sh 'mvn clean test' + } + + } } - post{ - always{ - echo 'Pipeline for instavote app is complete...' + stage('worker package') { + agent { + docker { + image 'maven:3.8.6' + args '-v $HOME/.m2/root/.m2' } - failure{ - slackSend (channel: "instavote-ci", message: "Build Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + + } + when { + branch 'master' + changeset '**/worker/**' + } + steps { + echo 'Packaging worker app' + dir(path: 'worker') { + sh 'mvn package -DskipTests' + archiveArtifacts(artifacts: '**/target/*.jar', fingerprint: true) } - success{ - echo 'Pipeline for worker is complete...' - slackSend (channel: "instavote-ci", message: "Build Succeeded - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + + } + } + + stage('worker-docker-package') { + agent any + when { + changeset '**/worker/**' + branch 'master' + } + steps { + echo 'Packaging worker app with docker' + script { + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") + workerImage.push() + workerImage.push("latest") + } } + + } } + + stage('vote build') { + agent { + docker { + image 'python:2.7.16-slim' + args '--user root' + } + + } + when { + changeset '**/vote/**' + } + steps { + echo 'Compiling vote app' + dir(path: 'vote') { + sh 'pip install -r requirements.txt' + } + + } + } + + stage('vote test') { + agent { + docker { + image 'python:2.7.16-slim' + args '--user root' + } + + } + when { + changeset '**/vote/**' + } + steps { + echo 'Running unit Tests on vote app' + dir(path: 'vote') { + sh 'pip install -r requirements.txt' + sh 'nosetests -v' + } + + } + } + + stage('vote-docker-package') { + agent any + when { + changeset '**/vote/**' + branch 'master' + } + steps { + echo 'Packaging vote app with docker' + script { + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def voteImage = docker.build("cheloghm/vote:v${env.BUILD_ID}", "./vote") + voteImage.push() + voteImage.push("latest") + } + } + + } + } + + stage('result build') { + agent { + docker { + image 'NodeJS 8.9.0' + } + + } + when { + changeset '**/result/**' + } + steps { + echo 'Compiling result app' + dir(path: 'result') { + sh 'npm install' + } + + } + } + + stage('result test') { + agent { + docker { + image 'NodeJS 8.9.0' + } + + } + when { + changeset '**/result/**' + } + steps { + echo 'Running unit Tests on result app' + dir(path: 'result') { + sh 'npm install' + sh 'npm test' + } + + } + } + + stage('result-docker-package') { + agent any + when { + changeset '**/result/**' + branch 'master' + } + steps { + echo 'Packaging result app with docker' + script { + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ + def resultImage = docker.build("cheloghm/result:v${env.BUILD_ID}", "./result") + resultImage.push() + resultImage.push("latest") + } + } + + } + } + + } + post { + always { + echo 'Pipeline for instavote app is complete...' + } + + failure { + slackSend(channel: 'instavote-ci', message: "Build Failed - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + + success { + echo 'Pipeline for worker is complete...' + slackSend(channel: 'instavote-ci', message: "Build Succeeded - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)") + } + + } } \ No newline at end of file From d97a3b43b6630e9094eacfc64eb1d355b8debf2a Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Mon, 7 Nov 2022 02:50:50 +0000 Subject: [PATCH 49/58] Update TEST.md @kicksgray @cheloghm --- TEST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TEST.md b/TEST.md index 5b6fa75466..79729c7ba7 100644 --- a/TEST.md +++ b/TEST.md @@ -1,2 +1,3 @@ Just testing the webhook Clean up +Fix the mono-pipeline first From 2cc83016a457ab5a1fa2ce0b8cda3011d2eae068 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 20:11:21 +0000 Subject: [PATCH 50/58] modified Jenkinfile --- Jenkinsfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ae22161e63..911084e1e1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,9 @@ pipeline { + agent none + stages { + stage('worker build') { agent { docker { @@ -75,7 +78,7 @@ pipeline { docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def workerImage = docker.build("cheloghm/worker:v${env.BUILD_ID}", "./worker") workerImage.push() - workerImage.push("latest") + workerImage.push("${env.BRANCH_NAME}") } } @@ -135,7 +138,7 @@ pipeline { docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def voteImage = docker.build("cheloghm/vote:v${env.BUILD_ID}", "./vote") voteImage.push() - voteImage.push("latest") + voteImage.push("${env.BRANCH_NAME}") } } @@ -193,7 +196,7 @@ pipeline { docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin'){ def resultImage = docker.build("cheloghm/result:v${env.BUILD_ID}", "./result") resultImage.push() - resultImage.push("latest") + resultImage.push("${env.BRANCH_NAME}") } } From 90e550db3d8b8d9b0b8b501e99a0ce4a7421dae0 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 20:51:21 +0000 Subject: [PATCH 51/58] commented Dockerfile for test --- docker-compose.yaml | 90 ++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index dfd70e3d75..92e7ff1ff1 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,52 +1,52 @@ -version: "3.8" +# version: "3.8" -volumes: - db-data: +# volumes: +# db-data: -networks: - instavote: - driver: bridge +# networks: +# instavote: +# driver: bridge -services: - vote: - image: cheloghm/vote:latest - build: ./vote - ports: - - 5002:80 - depends_on: - - redis - networks: - - instavote +# services: +# vote: +# image: cheloghm/vote:latest +# build: ./vote +# ports: +# - 5002:80 +# depends_on: +# - redis +# networks: +# - instavote - redis: - image: redis:alpine - networks: - - instavote +# redis: +# image: redis:alpine +# networks: +# - instavote - db: - image: postgres:9.4 - volumes: - - "db-data:/var/lib/postgresql/data" - networks: - - instavote - environment: - - POSTGRES_HOST_AUTH_METHOD=trust +# db: +# image: postgres:9.4 +# volumes: +# - "db-data:/var/lib/postgresql/data" +# networks: +# - instavote +# environment: +# - POSTGRES_HOST_AUTH_METHOD=trust - result: - image: cheloghm/result:latest - build: ./vote - ports: - - 5003:4000 - depends_on: - - db - networks: - - instavote +# result: +# image: cheloghm/result:latest +# build: ./vote +# ports: +# - 5003:4000 +# depends_on: +# - db +# networks: +# - instavote - worker: - image: cheloghm/worker:latest - build: ./vote - depends_on: - - redis - - db - networks: - - instavote \ No newline at end of file +# worker: +# image: cheloghm/worker:latest +# build: ./vote +# depends_on: +# - redis +# - db +# networks: +# - instavote \ No newline at end of file From 711a34c1e2072439f23f45584125fecfbcdb5a18 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 21:38:36 +0000 Subject: [PATCH 52/58] modified the general Jenkinsfile and the docker-compose file to see if it will build --- Jenkinsfile | 10 ++--- docker-compose.yaml | 90 ++++++++++++++++++++++----------------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 911084e1e1..5360bfc363 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -58,9 +58,9 @@ pipeline { } steps { echo 'Packaging worker app' - dir(path: 'worker') { + dir('worker') { sh 'mvn package -DskipTests' - archiveArtifacts(artifacts: '**/target/*.jar', fingerprint: true) + archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true } } @@ -98,7 +98,7 @@ pipeline { } steps { echo 'Compiling vote app' - dir(path: 'vote') { + dir('vote') { sh 'pip install -r requirements.txt' } @@ -118,7 +118,7 @@ pipeline { } steps { echo 'Running unit Tests on vote app' - dir(path: 'vote') { + dir('vote') { sh 'pip install -r requirements.txt' sh 'nosetests -v' } @@ -157,7 +157,7 @@ pipeline { } steps { echo 'Compiling result app' - dir(path: 'result') { + dir('result') { sh 'npm install' } diff --git a/docker-compose.yaml b/docker-compose.yaml index 92e7ff1ff1..dfd70e3d75 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,52 +1,52 @@ -# version: "3.8" +version: "3.8" -# volumes: -# db-data: +volumes: + db-data: -# networks: -# instavote: -# driver: bridge +networks: + instavote: + driver: bridge -# services: -# vote: -# image: cheloghm/vote:latest -# build: ./vote -# ports: -# - 5002:80 -# depends_on: -# - redis -# networks: -# - instavote +services: + vote: + image: cheloghm/vote:latest + build: ./vote + ports: + - 5002:80 + depends_on: + - redis + networks: + - instavote -# redis: -# image: redis:alpine -# networks: -# - instavote + redis: + image: redis:alpine + networks: + - instavote -# db: -# image: postgres:9.4 -# volumes: -# - "db-data:/var/lib/postgresql/data" -# networks: -# - instavote -# environment: -# - POSTGRES_HOST_AUTH_METHOD=trust + db: + image: postgres:9.4 + volumes: + - "db-data:/var/lib/postgresql/data" + networks: + - instavote + environment: + - POSTGRES_HOST_AUTH_METHOD=trust -# result: -# image: cheloghm/result:latest -# build: ./vote -# ports: -# - 5003:4000 -# depends_on: -# - db -# networks: -# - instavote + result: + image: cheloghm/result:latest + build: ./vote + ports: + - 5003:4000 + depends_on: + - db + networks: + - instavote -# worker: -# image: cheloghm/worker:latest -# build: ./vote -# depends_on: -# - redis -# - db -# networks: -# - instavote \ No newline at end of file + worker: + image: cheloghm/worker:latest + build: ./vote + depends_on: + - redis + - db + networks: + - instavote \ No newline at end of file From 568d9a432508de723986af02a6a1ac0c034820af Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 22:13:48 +0000 Subject: [PATCH 53/58] modified again --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5360bfc363..4b15084bbc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,7 +7,7 @@ pipeline { stage('worker build') { agent { docker { - image 'maven:3.8.6' + image 'maven:3.6.1-jdk-8-alpine' args '-v $HOME/.m2/root/.m2' } @@ -27,7 +27,7 @@ pipeline { stage('worker test') { agent { docker { - image 'maven:3.8.6' + image 'maven:3.6.1-jdk-8-alpine' args '-v $HOME/.m2/root/.m2' } @@ -47,7 +47,7 @@ pipeline { stage('worker package') { agent { docker { - image 'maven:3.8.6' + image 'maven:3.6.1-jdk-8-alpine' args '-v $HOME/.m2/root/.m2' } @@ -148,7 +148,7 @@ pipeline { stage('result build') { agent { docker { - image 'NodeJS 8.9.0' + image 'node:8.16.0-alpine' } } @@ -167,7 +167,7 @@ pipeline { stage('result test') { agent { docker { - image 'NodeJS 8.9.0' + image 'node:8.16.0-alpine' } } From 0a6758b146adf2d4bdf772417f9737ee75788eb6 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Mon, 7 Nov 2022 22:47:05 +0000 Subject: [PATCH 54/58] added steps taken to fix mono-pipeline. Co-authored-by: Kicksgray 111619639+kicksgray@users.noreply.github.com Co-authored-by: Graham cheloghm@gmail.com --- TEST.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TEST.md b/TEST.md index 79729c7ba7..cc7c298588 100644 --- a/TEST.md +++ b/TEST.md @@ -1,3 +1,5 @@ Just testing the webhook Clean up Fix the mono-pipeline first +Got the mono-pipeline working by changing the images of the different micro-services to smaller compatible images, +so it can easily be pulled during the build process. From aad716262a64fafbdd89e511876d68d663569c0a Mon Sep 17 00:00:00 2001 From: Graham Chukwumaobi <30377187+cheloghm@users.noreply.github.com> Date: Tue, 8 Nov 2022 00:04:04 +0000 Subject: [PATCH 55/58] testing how to add stage on blueocean ui --- Jenkinsfile | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4b15084bbc..ef3c94e461 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,9 +1,6 @@ pipeline { - agent none - stages { - stage('worker build') { agent { docker { @@ -58,9 +55,9 @@ pipeline { } steps { echo 'Packaging worker app' - dir('worker') { + dir(path: 'worker') { sh 'mvn package -DskipTests' - archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true + archiveArtifacts(artifacts: '**/target/*.jar', fingerprint: true) } } @@ -98,7 +95,7 @@ pipeline { } steps { echo 'Compiling vote app' - dir('vote') { + dir(path: 'vote') { sh 'pip install -r requirements.txt' } @@ -118,7 +115,7 @@ pipeline { } steps { echo 'Running unit Tests on vote app' - dir('vote') { + dir(path: 'vote') { sh 'pip install -r requirements.txt' sh 'nosetests -v' } @@ -157,7 +154,7 @@ pipeline { } steps { echo 'Compiling result app' - dir('result') { + dir(path: 'result') { sh 'npm install' } @@ -203,6 +200,13 @@ pipeline { } } + stage('Deploy to Dev') { + agent any + steps { + sh 'docker-compose up -d' + } + } + } post { always { From 710b649d9ded41bc1918fcc86cd8b7893f12cf66 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Tue, 8 Nov 2022 00:54:07 +0000 Subject: [PATCH 56/58] run deploy to dev only on master --- Jenkinsfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index ef3c94e461..95a6bb307a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -202,6 +202,9 @@ pipeline { stage('Deploy to Dev') { agent any + when { + branch 'master' + } steps { sh 'docker-compose up -d' } From 1265cabc72ee27a5ce004d7ed842bfdc0529a3df Mon Sep 17 00:00:00 2001 From: cheloghm Date: Thu, 10 Nov 2022 00:19:40 +0000 Subject: [PATCH 57/58] added sonarqube configurations --- Jenkinsfile | 32 ++++++++++++++++++++++++++++++++ sonar-project.properties | 4 ++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 95a6bb307a..e908cf0cb3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -200,6 +200,38 @@ pipeline { } } + stage('Sonarqube') { + agent any + when{ + branch 'master' + } + tools { + jdk "JDK11" // the name you have given the JDK installation in Global Tool Configuration + } + + environment{ + sonarpath = tool 'SonarScanner' + } + + steps { + echo 'Running Sonarqube Analysis..' + withSonarQubeEnv('sonar-instavote') { + sh "${sonarpath}/bin/sonar-scanner -Dproject.settings=sonar-project.properties -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=86400" + } + } + } + + + stage("Quality Gate") { + steps { + timeout(time: 1, unit: 'HOURS') { + // Parameter indicates whether to set pipeline to UNSTABLE if Quality Gate fails + // true = set pipeline to UNSTABLE, false = don't + waitForQualityGate abortPipeline: true + } + } + } + stage('Deploy to Dev') { agent any when { diff --git a/sonar-project.properties b/sonar-project.properties index fa91ad96cc..a9f766985d 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,6 +1,6 @@ # Uncomment and update Org matching your configurations on Sonarcloud -#sonar.organization=your-org -sonar.projectKey=your-org_example-voting-app +sonar.organization=cheloghm +sonar.projectKey=cheloghm_example-voting-app sonar.projectName=Instavote AIO sonar.projectVersion=1.0 # Comma-separated paths to directories with sources (required) From 00746db9f34c7a90bb1181a74f6a62985817b309 Mon Sep 17 00:00:00 2001 From: cheloghm Date: Thu, 10 Nov 2022 00:59:00 +0000 Subject: [PATCH 58/58] aded integration test for vote app --- Jenkinsfile | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index e908cf0cb3..9fd6582e58 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -123,6 +123,20 @@ pipeline { } } + stage('vote integration'){ + agent any + when{ + changeset "**/vote/**" + branch 'master' + } + steps{ + echo 'Running Integration Tests on vote app' + dir('vote'){ + sh 'sh integration_test.sh' + } + } + } + stage('vote-docker-package') { agent any when {