From 891d519a113d40cfccb2518986659c19a033228f Mon Sep 17 00:00:00 2001
From: 9Lukas5 <lukas.wiest@infinite-tech.solutions>
Date: Mon, 14 Dec 2020 17:55:06 +0100
Subject: [PATCH] ci: add jenkins script for multibranch pipeline

---
 Jenkinsfile | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)
 create mode 100644 Jenkinsfile

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..9751090
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,74 @@
+
+def version = ""
+
+pipeline {
+
+    environment {
+        registry = "hftstuttgart/modocot-openjdk11-juni5-testrunner"
+        registryCredential = 'Dockerhub'
+        dockerImage = ''
+    }
+
+    agent any
+
+    tools {
+        jdk 'Java11'
+        maven 'Maven_Home'
+    }
+
+    stages {
+        stage('prepare') {
+            steps {
+                checkout ([
+                    $class: 'GitSCM',
+                    branches: scm.branches,
+                    extensions: scm.extensions + [[$class: 'CloneOption', noTags: false, reference: '', shallow: false]],
+                    userRemoteConfigs: scm.userRemoteConfigs
+                ])
+                script {
+                    version = sh(script: 'git describe --tags --always', returnStdout: true).trim()
+                    echo sh(script: 'env|sort', returnStdout: true)
+                }
+
+            }
+        }
+
+        stage('compile') {
+            steps {
+                sh 'mvn clean package'
+            }
+        }
+
+        stage('build Docker image') {
+            steps {
+                script {
+                    dockerImage = docker.build registry
+                }
+            }
+        }
+
+        stage('push development image') {
+            steps {
+                script {
+                    docker.withRegistry( '', registryCredential ) {
+                        dockerImage.push("${env.GIT_BRANCH}")
+                    }
+                }
+            }
+        }
+
+        stage('release') {
+            when {
+                expression { version ==~ /[0-9]+.[0-9]+.[0-9]+/ }
+            }
+            steps {
+                script {
+                    docker.withRegistry( '', registryCredential ) {
+                        dockerImage.push("latest")
+                        dockerImage.push("${version}")
+                    }
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
-- 
GitLab