diff --git a/result/Jenkinsfile b/result/Jenkinsfile
new file mode 100644
index 0000000000..269f1f00a6
--- /dev/null
+++ b/result/Jenkinsfile
@@ -0,0 +1,60 @@
+pipeline {
+ agent none
+ stages {
+ stage('build') {
+ agent {
+ docker {
+ image 'node:14.21-alpine3.15'
+ }
+ }
+ when{
+ changeset "**/result/**"
+ }
+ steps {
+ echo 'Compiling worker app'
+ dir('result'){
+ sh 'npm install'
+ }
+ }
+ }
+ stage('test') {
+ agent {
+ docker {
+ image 'node:14.21-alpine3.15'
+ }
+ }
+ when {
+ changeset "**/result/**"
+ }
+ steps {
+ echo 'Running Unit Tests on worker 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'
+ sript{
+ docker.withRegistry('https://index.docker.io/v1', 'dockerlogin'){
+ def workerImage = docker.build("slobodaandrej/result:v${env.BUILD_ID}", "./result")
+ workerImage.push()
+ workerImage.push("${env.BRANCH_NAME}")
+ }
+ }
+ }
+ }
+ }
+ post {
+ always{
+ echo 'Pipeline for result is complete..'
+ }
+ }
+}
diff --git a/vote/Jenkinsfile b/vote/Jenkinsfile
new file mode 100644
index 0000000000..d2243ccf5a
--- /dev/null
+++ b/vote/Jenkinsfile
@@ -0,0 +1,62 @@
+pipeline {
+ agent none
+ stages {
+ stage('build') {
+ agent {
+ docker {
+ image 'python:2.7.16-slim'
+ args '--user root'
+ }
+ }
+ when{
+ changeset "**/vote/**"
+ }
+ steps {
+ echo 'Compiling worker app'
+ dir('vote'){
+ sh 'pip install -r requirements.txt'
+ }
+ }
+ }
+ 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'
+ sript{
+ docker.withRegistry('https://index.docker.io/v1', 'dockerlogin'){
+ def workerImage = docker.build("slobodaandrej/vote:v${env.BUILD_ID}", "./vote")
+ workerImage.push()
+ workerImage.push("${env.BRANCH_NAME}")
+ }
+ }
+ }
+ }
+ }
+ post {
+ always{
+ echo 'Pipeline for vote is complete..'
+ }
+ }
+}
diff --git a/vote/tests/test_frontend.py b/vote/tests/test_frontend.py
index 5e3d37a3d1..929f0e60fe 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('/')
@@ -28,3 +27,4 @@ def test_processed_by_is_set(self):
if __name__ == '__main__':
unittest.main()
+
diff --git a/worker/.project b/worker/.project
index 49e0d9af10..99669e1dbb 100644
--- a/worker/.project
+++ b/worker/.project
@@ -20,4 +20,15 @@
org.eclipse.jdt.core.javanature
org.eclipse.m2e.core.maven2Nature
+
+
+ 1666897974092
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/worker/.settings/org.eclipse.jdt.core.prefs b/worker/.settings/org.eclipse.jdt.core.prefs
index 1eb325ec7e..b11489fa64 100644
--- a/worker/.settings/org.eclipse.jdt.core.prefs
+++ b/worker/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,9 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.processAnnotations=disabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.7
diff --git a/worker/Dockerfile b/worker/Dockerfile
new file mode 100644
index 0000000000..1264902a0f
--- /dev/null
+++ b/worker/Dockerfile
@@ -0,0 +1,11 @@
+FROM maven:3.6.1-jdk-8-alpine
+
+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
diff --git a/worker/Jenkinsfile b/worker/Jenkinsfile
new file mode 100644
index 0000000000..882cfd690c
--- /dev/null
+++ b/worker/Jenkinsfile
@@ -0,0 +1,90 @@
+pipeline {
+
+ agent none
+
+ stages{
+ stage("build"){
+ when{
+ changeset "**/worker/**"
+ }
+
+ agent{
+ docker{
+ image 'maven:3.6.1-jdk-8-slim'
+ 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.6.1-jdk-8-slim'
+ 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.6.1-jdk-8-slim'
+ 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("initcron/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..'
+ }
+ }
+}
+
diff --git a/worker/src/test/java/worker/UnitWorker.java b/worker/src/test/java/worker/UnitWorker.java
index cb5d513961..0942cd5f5d 100644
--- a/worker/src/test/java/worker/UnitWorker.java
+++ b/worker/src/test/java/worker/UnitWorker.java
@@ -22,4 +22,9 @@ void sample3() {
void sample4() {
}
-}
+
+ @Test
+ void sample5() {
+
+ }
+}
\ No newline at end of file
diff --git a/worker/target/test-classes/worker/UnitWorker.class b/worker/target/test-classes/worker/UnitWorker.class
new file mode 100644
index 0000000000..73030cccfc
Binary files /dev/null and b/worker/target/test-classes/worker/UnitWorker.class differ