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
=========

This is a sample instavote application

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

Expand Down
76 changes: 76 additions & 0 deletions result/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
pipeline {

agent none


stages{


stage("build"){


agent{
docker{
image 'node:8.16.0-alpine'
}
}

when{
changeset "**/result/**"
}


steps{
echo 'Compiling result app'
dir('result'){
sh 'npm install'
}
}
}


stage("test"){

agent{
docker{
image 'node:8.16.0-alpine'
}
}

when{
changeset "**/result/**"
}


steps{
echo 'Running Unit Tests on result app'
dir('result'){
sh 'npm install'
sh 'npm test'
}
}
}


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 workerImage = docker.build("rsdroid/result:v${env.BUILD_ID}", "./result")
workerImage.push()
workerImage.push("${env.BRANCH_NAME}")
workerImage.push("latest")
}
}
}
}
}

}
79 changes: 79 additions & 0 deletions vote/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
pipeline {

agent none

stages{
agent{
docker{
image 'python:2.7.16-slim'
args '--user root'
}
}


stage("build"){

when{
changeset "**/vote/**"
}



steps{
echo 'Compiling vote app'
dir('vote'){
sh 'pip install -r requirements.txt'
}
}
}


stage("test"){
when{
changeset "**/vote/**"
}

agent{
docker{
image 'python:2.7.16-slim'
args '--user root'
}
}

steps{
echo 'Running Unit Tests on worker 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 workerImage = docker.build("rsdroid/vote:v${env.BUILD_ID}", "./vote")
workerImage.push()
workerImage.push("${env.BRANCH_NAME}")
workerImage.push("latest")
}
}
}
}
}

post{
always{
echo 'Building multibranch pipeline for worker is completed..'
}
}
}
11 changes: 11 additions & 0 deletions worker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM maven:3.6.1-jdk-8-slim

WORKDIR /app

COPY . .

RUN mvn package && \
mv target/worker-jar-with-dependencies.jar /run/worker.jar && \
rm -rf /app/*

CMD java -jar /run/worker.jar
99 changes: 99 additions & 0 deletions worker/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
pipeline {

agent none

stages{
stage("build"){
agent{
docker{
image 'maven:3.6.1-jdk-8-slim'
args '-v $HOME/.m2:/root/.m2'
}
}

when{
changeset "**/worker/**"
}




steps{
echo 'Compiling worker app'
dir('worker'){
sh 'mvn compile'
}
}
}


stage("test"){
when{
changeset "**/worker/**"
}

agent{
docker{
image 'maven:3.6.1-jdk-8-slim'
args '-v $HOME/.m2:/root/.m2'
}
}

steps{
echo 'Running Unit Tests on worker app'
dir('worker'){
sh 'mvn clean test'
}
}
}


stage("package"){
when{
branch 'master'
changeset "**/worker/**"
}

agent{
docker{
image 'maven:3.6.1-jdk-8-slim'
args '-v $HOME/.m2:/root/.m2'
}
}

steps{
echo 'Packaging worker app'
dir('worker'){
sh 'mvn package -DskipTests'
}
}
}


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("rsdroid/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..'
}
}
}