Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Example Voting App
=========

DUPA!!

Getting started
---------------

Expand Down
16 changes: 16 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -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
21 changes: 12 additions & 9 deletions vote/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ pipeline {
agent none
stages{
stage('build'){
when{
changeset "**/vote/**"
}

agent{
docker{
image 'python:3.11-slim'
Expand All @@ -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'
Expand All @@ -32,36 +36,35 @@ 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")
}
}
}
}

}
post {
always{
echo 'Pipeline for vote is complete'
}
}

}


123 changes: 86 additions & 37 deletions worker/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,41 +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'
}
}
}
stage('test'){
steps{
echo 'running unit tests on worker app'
dir('worker'){
sh 'mvn clean test'
}
}
}
stage('package'){
steps{
echo 'packaging worker app into a jarfile'
dir('worker'){
sh 'mvn package -DskipTests'
archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
}
}
}
}
post{
always{
echo 'the job is complete'
pipeline {

agent none

stages{
stage("build"){
when{
changeset "**/worker/**"
}

agent{
docker{
image 'maven:3.9.8-sapmachine-21'
args '-v $HOME/.m2:/root/.m2'
}
}

steps{
echo 'Compiling worker app..'
dir('worker'){
sh 'mvn compile'
}
}
}
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("dart913/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..'
}
}
}