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