From 3035080da9a1e4dd1700c796964651a78b8df7ae Mon Sep 17 00:00:00 2001 From: Pawel Date: Fri, 1 Nov 2024 21:11:55 +0100 Subject: [PATCH 1/5] Added DUPA to readme. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b8ad8a94..12c47f53 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ Example Voting App ========= +DUPA!! + Getting started --------------- From b1170044f411f10e8768369bf11eb4d97715a1be Mon Sep 17 00:00:00 2001 From: Pawel Date: Sat, 2 Nov 2024 11:33:20 +0100 Subject: [PATCH 2/5] Added sleep steps to Jenkins stages --- worker/Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index b66016b2..e637816b 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -11,6 +11,7 @@ pipeline { echo 'building worker app' dir('worker'){ sh 'mvn compile' + sleep 3 } } } @@ -19,6 +20,7 @@ pipeline { echo 'running unit tests on worker app' dir('worker'){ sh 'mvn clean test' + sleep 5 } } } From e729e5322595c81216e270f030faef6d4d3bf057 Mon Sep 17 00:00:00 2001 From: Pawel Date: Sun, 3 Nov 2024 18:07:09 +0100 Subject: [PATCH 3/5] Added docker-package to Jenkinsfile --- worker/Jenkinsfile | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index e637816b..15faff4a 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -32,7 +32,20 @@ pipeline { archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true } } - } + } + stage('docker-package'){ + agent any + steps{ + echo 'Packaging worker app with docker' + script{ + docker.withRegistry('https://index.docker.io/v1/','dockerlogin') { + def workerImage = docker.build("dart913/worker:v${env.BUILD_ID}", "./worker") + workerImage.push() + workerImage.push("latest") + } + } + } + } } post{ always{ From 713ecf7ec531445b552345cd66e9cd47ff87e8cf Mon Sep 17 00:00:00 2001 From: Pawel Date: Sun, 3 Nov 2024 19:00:03 +0100 Subject: [PATCH 4/5] per stage agents, conditional execution --- worker/Jenkinsfile | 134 ++++++++++++++++++++++++++++----------------- 1 file changed, 84 insertions(+), 50 deletions(-) diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 15faff4a..503cb961 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -1,56 +1,90 @@ -pipeline { - agent{ - docker{ - image 'maven:3.9.8-sapmachine-21' - args '-v $HOME/.m2:/root/.m2' - } - } - stages{ - stage('build'){ - steps{ - echo 'building worker app' - dir('worker'){ - sh 'mvn compile' - sleep 3 - } - } - } - stage('test'){ - steps{ - echo 'running unit tests on worker app' - dir('worker'){ - sh 'mvn clean test' - sleep 5 - } - } - } - stage('package'){ - steps{ - echo 'packaging worker app into a jarfile' - dir('worker'){ - sh 'mvn package -DskipTests' - archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true - } - } +pipeline { + + agent none + + stages{ + stage("build"){ + when{ + changeset "**/worker/**" + } + + agent{ + docker{ + image 'maven:3.9.8-sapmachine-21' + args '-v $HOME/.m2:/root/.m2' + } } - stage('docker-package'){ - agent any - steps{ - echo 'Packaging worker app with docker' - script{ - docker.withRegistry('https://index.docker.io/v1/','dockerlogin') { - def workerImage = docker.build("dart913/worker:v${env.BUILD_ID}", "./worker") - workerImage.push() - workerImage.push("latest") - } - } - } + + steps{ + echo 'Compiling worker app..' + dir('worker'){ + sh 'mvn compile' + } } - } - post{ - always{ - echo 'the job is complete' + } + stage("test"){ + when{ + changeset "**/worker/**" + } + agent{ + docker{ + image 'maven:3.9.8-sapmachine-21' + args '-v $HOME/.m2:/root/.m2' + } + } + steps{ + echo 'Running Unit Tets on worker app..' + dir('worker'){ + sh 'mvn clean test' + } + } + } + stage("package"){ + when{ + branch 'master' + changeset "**/worker/**" + } + agent{ + docker{ + image 'maven:3.9.8-sapmachine-21' + args '-v $HOME/.m2:/root/.m2' + } + } + steps{ + echo 'Packaging worker app' + dir('worker'){ + sh 'mvn package -DskipTests' + archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true + } + + } + } + + stage('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") + } + } + } + } + } + + post{ + always{ + echo 'Building multibranch pipeline for worker is completed..' } } } + From c366ad49061f5c543f63c464565d9fd8a86be0ed Mon Sep 17 00:00:00 2001 From: Pawel Date: Sun, 22 Dec 2024 15:19:39 +0100 Subject: [PATCH 5/5] Corrections --- docker-compose.yaml | 16 ++++++++++++++++ vote/Jenkinsfile | 21 ++++++++++++--------- worker/Jenkinsfile | 2 +- 3 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 docker-compose.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..67b903c9 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,16 @@ + +services: + vote: + image: dart913/vote:latest + ports: + - 5000:80 + redis: + image: redis:alpine + db: + image: postgres:15-alpine + result: + image: dart913/result:latest + ports: + - 5001:80 + worker: + image: dart913/worker:latest diff --git a/vote/Jenkinsfile b/vote/Jenkinsfile index cf328100..924b5240 100644 --- a/vote/Jenkinsfile +++ b/vote/Jenkinsfile @@ -2,6 +2,10 @@ pipeline { agent none stages{ stage('build'){ + when{ + changeset "**/vote/**" + } + agent{ docker{ image 'python:3.11-slim' @@ -12,14 +16,14 @@ pipeline { steps{ echo 'Compiling vote app.' dir('vote'){ - sh "pip install -r requirements.txt" - } } } stage('test'){ - + when{ + changeset "**/vote/**" + } agent { docker{ image 'python:3.11-slim' @@ -32,21 +36,22 @@ pipeline { sh "pip install -r requirements.txt" sh 'nosetests -v' - - } } } stage('docker-package'){ agent any - + when{ + changeset "**/vote/**" + branch 'master' + } steps{ echo 'Packaging wvoteorker 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("okapetanios/vote:v${env.BUILD_ID}", "./vote") + def voteImage = docker.build("dart913/vote:v${env.BUILD_ID}", "./vote") voteImage.push() voteImage.push("${env.BRANCH_NAME}") voteImage.push("latest") @@ -54,14 +59,12 @@ pipeline { } } } - } post { always{ echo 'Pipeline for vote is complete' } } - } diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile index 503cb961..4fa2371a 100644 --- a/worker/Jenkinsfile +++ b/worker/Jenkinsfile @@ -71,7 +71,7 @@ pipeline { 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") + def workerImage = docker.build("dart913/worker:v${env.BUILD_ID}", "./worker") workerImage.push() workerImage.push("${env.BRANCH_NAME}") workerImage.push("latest")