From ef890f2024786c0306f9ce5c742e684745efd057 Mon Sep 17 00:00:00 2001
From: Jonas Blatt <jonasblatt@uni-koblenz.de>
Date: Tue, 15 Oct 2019 23:34:25 +0200
Subject: [PATCH] Feat/gitlabci

---
 .gitlab-ci.yml                                | 66 +++++++++++++++++++
 dmnverifierfrontend/pom.xml                   | 18 ++++-
 .../META-INF/resources/js/dmnVerifier.js      |  2 +-
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..7209cc19
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,66 @@
+---
+# Build JAVA applications using Apache Maven (http://maven.apache.org)
+stages:
+  - build
+  - test
+  - deploy
+
+variables:
+  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
+  
+  # Backend 
+  MAVEN_CLI_OPTS_1: "-f dmnverifierapi/pom.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
+  # Frontend
+  MAVEN_CLI_OPTS_2: "-f dmnverifierfrontend/pom.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
+
+# Cache downloaded dependencies and plugins between builds.
+# To keep cache across branches add 'key: "$CI_JOB_NAME"'
+cache:
+  paths:
+    - .m2/repository
+
+# Remove trash after builds
+default:
+  after_script:
+    - sudo rm -rf *
+
+.validate: &validate
+  stage: build
+  script:
+    - 'sudo mvn $MAVEN_CLI_OPTS_1 test-compile'
+    - 'sudo mvn $MAVEN_CLI_OPTS_2 test-compile'
+    
+# For merge requests do not `install` but only run `verify`.
+# See https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
+.verify: &verify
+  stage: test
+  script:
+    - 'sudo mvn $MAVEN_CLI_OPTS_1 verify'
+    - 'sudo mvn $MAVEN_CLI_OPTS_2 verify'
+  except:
+    - master
+
+# Validate merge requests using JDK8
+validate:jdk8:
+  <<: *validate
+  image: maven:3.6.0-jdk-8
+
+# Verify merge requests using JDK8
+verify:jdk8:
+  <<: *verify
+  image: maven:3.6.0-jdk-8
+
+deploy:
+  image: busybox:latest
+  stage: deploy
+  script:
+    - sudo systemctl stop dmn-verifier-backend
+    - sudo systemctl stop dmn-verifier-frontend
+    - 'sudo mvn $MAVEN_CLI_OPTS_1 clean install -DskipTests'
+    - sudo cp dmnverifierapi/target/*-runner.jar /opt/dmn/dmn-backend-runner.jar
+    - 'sudo mvn $MAVEN_CLI_OPTS_2 clean install -DskipTests'
+    - sudo cp dmnverifierfrontend/target/*-runner.jar /opt/dmn/dmn-frontend-runner.jar
+    - sudo systemctl start dmn-verifier-backend
+    - sudo systemctl start dmn-verifier-frontend
+  only:
+    - master
\ No newline at end of file
diff --git a/dmnverifierfrontend/pom.xml b/dmnverifierfrontend/pom.xml
index aa6d520a..0ea30ddf 100644
--- a/dmnverifierfrontend/pom.xml
+++ b/dmnverifierfrontend/pom.xml
@@ -12,12 +12,15 @@
   <modelVersion>4.0.0</modelVersion>
   <artifactId>dmn-verifier-frontend</artifactId>
 
- <build>
+  <build>
     <plugins>
       <plugin>
         <groupId>io.quarkus</groupId>
         <artifactId>quarkus-maven-plugin</artifactId>
         <version>${quarkus.version}</version>
+        <configuration>
+          <uberJar>true</uberJar>
+        </configuration>
         <executions>
           <execution>
             <goals>
@@ -26,6 +29,19 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <artifactId>jandex-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>jandex</goal>
+            </goals>
+            <id>make-index</id>
+          </execution>
+        </executions>
+        <groupId>org.jboss.jandex</groupId>
+        <version>1.0.6</version>
+      </plugin>
       <plugin>
         <artifactId>maven-surefire-plugin</artifactId>
         <version>${surefire-plugin.version}</version>
diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js
index 25d9d6fd..8f3dcf6a 100644
--- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js
+++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js
@@ -1,4 +1,4 @@
-let rootUrl = 'http://192.168.2.109:8080/';
+let rootUrl = 'http://dmn.fg-bks.uni-koblenz.de:8080/';
 let dmnApi = rootUrl + 'api/dmn/';
 
 /**
-- 
GitLab