From a4c65840c430b6cfde8d2985007d0d850b817c4a Mon Sep 17 00:00:00 2001 From: gugas1250 Date: Wed, 3 Aug 2022 00:08:19 -0400 Subject: [PATCH 01/19] new Dockerfile --- vote/Dockerfile.1 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 vote/Dockerfile.1 diff --git a/vote/Dockerfile.1 b/vote/Dockerfile.1 new file mode 100644 index 0000000000..28c6648b7b --- /dev/null +++ b/vote/Dockerfile.1 @@ -0,0 +1,14 @@ +FROM python:2.7-alpine + + +WORKDIR /app + +COPY . . + +RUN pip install -r requirements.txt + +EXPOSE 80 + +CMD [ "gunicorn", " app:app", "-b", "0.0.0.0:80" ] + + From 188868ac3c7dd316652e75ca175553b97ab1af3f Mon Sep 17 00:00:00 2001 From: gugas1250 Date: Thu, 4 Aug 2022 16:45:16 -0400 Subject: [PATCH 02/19] add Dockerfile to worker --- worker/Dockerfile.multistage | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 worker/Dockerfile.multistage diff --git a/worker/Dockerfile.multistage b/worker/Dockerfile.multistage new file mode 100644 index 0000000000..845be77ed8 --- /dev/null +++ b/worker/Dockerfile.multistage @@ -0,0 +1,21 @@ +FROM paulogugas/worker-base:latest AS build + + +WORKDIR /code +COPY . . +RUN mvn package -D SkipTests + + + +FROM openjdk:8-jre-alpine AS run + +WORKDIR /run + +COPY --from=build /code/target/worker-jar-with-dependencies.jar worker.jar + + + + + +CMD java -jar worker.jar + From d26d595e1d7c6f56a0d179daaca59b53a5b053c6 Mon Sep 17 00:00:00 2001 From: gugas1250 Date: Thu, 4 Aug 2022 17:48:49 -0400 Subject: [PATCH 03/19] adding a new Dockerfile --- result/Dockerfile.1 | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 result/Dockerfile.1 diff --git a/result/Dockerfile.1 b/result/Dockerfile.1 new file mode 100644 index 0000000000..e6320885f3 --- /dev/null +++ b/result/Dockerfile.1 @@ -0,0 +1,18 @@ +FROM node:8.9-alpine + +WORKDIR /app + +COPY . . + +RUN npm config set registry https://registry.npmjs.org + +RUN npm install \ + && npm ls \ + && npm cache clean --force \ + && mv /app/node_modules /node_modules + + +ENV PORT 80 +EXPOSE 80 + +CMD node server.js From f6a984ac2fcf6e49288fb21dd943f2ed9627294a Mon Sep 17 00:00:00 2001 From: gugas1250 Date: Thu, 4 Aug 2022 19:25:02 -0400 Subject: [PATCH 04/19] adding a new docker compose spec --- docker-compose1.yaml | 63 ++++++++++++++++++++++++++++++++++++++++++++ vote/Dockerfile.1 | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 docker-compose1.yaml diff --git a/docker-compose1.yaml b/docker-compose1.yaml new file mode 100644 index 0000000000..4d03a96083 --- /dev/null +++ b/docker-compose1.yaml @@ -0,0 +1,63 @@ +version: "3.8" +networks: + vote: + driver: bridge + + + +services: + vote: + image: paulogugas/vote:v1 + build: + context: ./vote + dockerfile: Dockerfile.1 + ports: + - 80 + depends_on: + - redis + networks: + - vote + + + redis: + image: redis:alpine + networks: + - vote + + + + + worker: + image: paulogugas/worker + build: + context: ./worker + dockerfile: Dockerfile.multistage + depends_on: + - redis + - db + networks: + - vote + + + + db: + image: postgres:12-alpine + networks: + - vote + environment: + - POSTGRES_HOST_AUTH_METHOD=trust + + + + result: + image: paulogugas/result + build: + context: ./result + dockerfile: Dockerfile.1 + ports: + - 80 + depends_on: + - db + + networks: + - vote diff --git a/vote/Dockerfile.1 b/vote/Dockerfile.1 index 28c6648b7b..5bee0b3ae1 100644 --- a/vote/Dockerfile.1 +++ b/vote/Dockerfile.1 @@ -9,6 +9,6 @@ RUN pip install -r requirements.txt EXPOSE 80 -CMD [ "gunicorn", " app:app", "-b", "0.0.0.0:80" ] +CMD [ "gunicorn", "app:app", "-b", "0.0.0.0:80" ] From 3a14a59f9589354cfd0cf13e48751477e80ae1ff Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Wed, 4 Jan 2023 03:46:46 +0000 Subject: [PATCH 05/19] Update pom.xml --- worker/pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/worker/pom.xml b/worker/pom.xml index bed5b39f43..99e881db26 100644 --- a/worker/pom.xml +++ b/worker/pom.xml @@ -101,3 +101,6 @@ + + + From 35ec635826d39ec16731dde84d98db01d2c30b24 Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Wed, 4 Jan 2023 20:58:27 +0000 Subject: [PATCH 06/19] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e8a38231bd..14cc473f39 100644 --- a/README.md +++ b/README.md @@ -36,4 +36,6 @@ Architecture Note ---- +hello i just made a change + The voting application only accepts one vote per client. It does not register votes if a vote has already been submitted from a client. From 9ee54202b8daf0bc782e40518e833ffe24216388 Mon Sep 17 00:00:00 2001 From: gugas1250 Date: Wed, 4 Jan 2023 16:42:11 -0800 Subject: [PATCH 07/19] jenkinsfile --- Jenkinsfile | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..94798f7387 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,30 @@ +pipeline { + agent any + + stages{ + stage("one"){ + steps{ + echo 'step 1' + sleep 3 + } + } + stage("two"){ + steps{ + echo 'step 2' + sleep 9 + } + } + stage("three"){ + steps{ + echo 'step 3' + sleep 5 + } + } + } + + post{ + always{ + echo 'This pipeline is completed.' + } + } +} From 60c5b7105ea5cb7514eed169dde5589a5172571f Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:10:31 -0800 Subject: [PATCH 08/19] Rename Jenkinsfile to Jenkinsfile.1 --- Jenkinsfile => Jenkinsfile.1 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Jenkinsfile => Jenkinsfile.1 (100%) diff --git a/Jenkinsfile b/Jenkinsfile.1 similarity index 100% rename from Jenkinsfile rename to Jenkinsfile.1 From 67b139ef63ca55b59334ca61812103e818a45a8e Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:10:59 -0800 Subject: [PATCH 09/19] Create Jenkinsfile --- Jenkinsfile | 239 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..eec1335455 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,239 @@ +pipeline { + + agent none + + stages { + + stage('worker-build') { + agent { + docker { + image 'maven:3.8.5-jdk-11-slim' + 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.5-jdk-11-slim' + args '-v $HOME/.m2:/root/.m2' + } + + } + when { + changeset '**/worker/**' + } + steps { + echo 'Running Unit Tets on worker app.' + dir(path: 'worker') { + sh 'mvn clean test' + } + + } + } + + stage('worker-package') { + agent { + docker { + image 'maven:3.8.5-jdk-11-slim' + args '-v $HOME/.m2:/root/.m2' + } + + } + when { + branch 'master' + changeset '**/worker/**' + } + steps { + echo 'Packaging worker app' + dir(path: '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("xxxxx/worker:v${env.BUILD_ID}", './worker') + workerImage.push() + workerImage.push("${env.BRANCH_NAME}") + workerImage.push('latest') + } + } + + } + } + + stage('result-build') { + agent { + docker { + image 'node:8.16.0-alpine' + } + + } + when { + changeset '**/result/**' + } + steps { + echo 'Compiling result app..' + dir(path: 'result') { + sh 'npm install' + } + + } + } + + stage('result-test') { + agent { + docker { + image 'node:8.16.0-alpine' + } + + } + 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("xxxxx/result:v${env.BUILD_ID}", './result') + resultImage.push() + resultImage.push("${env.BRANCH_NAME}") + resultImage.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 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 + steps { + echo 'Packaging vote app with docker' + script { + docker.withRegistry('https://index.docker.io/v1/', 'dockerlogin') { + // ./vote is the path to the Dockerfile that Jenkins will find from the Github repo + def voteImage = docker.build("xxxxx/vote:${env.GIT_COMMIT}", "./vote") + voteImage.push() + voteImage.push("${env.BRANCH_NAME}") + voteImage.push("latest") + } + } + + } + } + + + stage('deploy to dev') { + agent any + when { + branch 'master' + } + steps { + echo 'Deploy instavote app with docker compose' + sh 'docker-compose up -d' + } + } + + } + + post { + always { + echo 'Building mono pipeline for voting app is completed.' + } + } +} From 29eebf4276652584ec2beb809eac34b647624f06 Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:33:45 -0800 Subject: [PATCH 10/19] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index eec1335455..33830a9e2f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ pipeline { - agent none + agent any stages { From 68c6be2e906c9e69ee71b13f3368acc927dbd2d3 Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:49:13 -0800 Subject: [PATCH 11/19] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 33830a9e2f..419d984c18 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ pipeline { - agent any + agent docker stages { From 80cd29ca25e765b239e563f3c670f17f9ca78931 Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:51:38 -0800 Subject: [PATCH 12/19] Update Jenkinsfile --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 419d984c18..0cbf771000 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,15 +1,15 @@ pipeline { - agent docker + agent any stages { stage('worker-build') { - agent { + agent any docker { image 'maven:3.8.5-jdk-11-slim' args '-v $HOME/.m2:/root/.m2' - } + } when { From 0ec36f7b637b5d8475580725fefeae7d532cc9b4 Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:53:07 -0800 Subject: [PATCH 13/19] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0cbf771000..e4eaa892d9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,7 +6,7 @@ pipeline { stage('worker-build') { agent any - docker { + image 'maven:3.8.5-jdk-11-slim' args '-v $HOME/.m2:/root/.m2' From d25757c57f1e8904341ca3db2f036745d43b9e7b Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:53:54 -0800 Subject: [PATCH 14/19] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index e4eaa892d9..0e7a999dba 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -236,4 +236,4 @@ pipeline { echo 'Building mono pipeline for voting app is completed.' } } -} + From 320834c627637d93b588c2b7f6060074a374b71c Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:55:12 -0800 Subject: [PATCH 15/19] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0e7a999dba..31ba040ddc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,7 +5,7 @@ pipeline { stages { stage('worker-build') { - agent any + image 'maven:3.8.5-jdk-11-slim' args '-v $HOME/.m2:/root/.m2' From 37eab1891087c213c284dffb5e6942cccd5b9217 Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:56:29 -0800 Subject: [PATCH 16/19] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 31ba040ddc..4a637b1291 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ pipeline { image 'maven:3.8.5-jdk-11-slim' args '-v $HOME/.m2:/root/.m2' - + } } when { From 205b92dbdeabe2d74984a66075c593fb029addad Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:57:25 -0800 Subject: [PATCH 17/19] Update Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4a637b1291..03fad77d9e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { image 'maven:3.8.5-jdk-11-slim' args '-v $HOME/.m2:/root/.m2' } - + } } when { changeset '**/worker/**' From 5024ea094c56e741f3c7d48dfcf13c1c4436acb1 Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:58:41 -0800 Subject: [PATCH 18/19] Update Jenkinsfile --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 03fad77d9e..151d7a3172 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,6 +10,7 @@ pipeline { image 'maven:3.8.5-jdk-11-slim' args '-v $HOME/.m2:/root/.m2' } + } } } when { From 16c9365589cec4cd2ffbc3d97d449e4cd2c417ff Mon Sep 17 00:00:00 2001 From: Paulo Peres <88409939+gugas1250@users.noreply.github.com> Date: Mon, 16 Jan 2023 12:59:30 -0800 Subject: [PATCH 19/19] Update Jenkinsfile --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 151d7a3172..99b01a52e4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ pipeline { - agent any + agent none stages { @@ -12,7 +12,7 @@ pipeline { } } } - } + when { changeset '**/worker/**' }