From 9dbfb4ba3f63b3e172511b2feba60de181a20dba Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 26 Jul 2019 17:30:59 +0200
Subject: [PATCH] test for java 11

---
 .gitlab-ci.yml | 254 ++++++++++++++++++++++++++++++-------------------
 1 file changed, 157 insertions(+), 97 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8902cd8be8..3ac4775b45 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,7 +10,7 @@ variables:
   POSTGRES_USER: map_viewer
   POSTGRES_PASSWORD: "123qweasdzxc"
 
-test_frontend:
+test:frontend:
   stage: test
   coverage: '/Statements[:\ ]+(\d+.\d+)\%/'
   script:
@@ -18,11 +18,22 @@ test_frontend:
     - npm install  
     - npm test
 
-test_backend commons:
+.jdk_8_template: &jdk_8_definition
   image: maven:3.6.0-jdk-8
+  services:
+    - postgres:9.6
   stage: test
   coverage: '/(\d+.\d+) \% covered/'
-  script:
+
+.jdk_11_template: &jdk_11_definition
+  image: maven:3.6.0-jdk-11
+  services:
+    - postgres:9.6
+  stage: test
+  coverage: '/(\d+.\d+) \% covered/'
+
+.test_backend_commons_template: 
+  script: &test_backend_commons_definition
 #xvfb is for X11 connection used by some parts of the java code: https://stackoverflow.com/a/47575851/1127920
     - apt-get update
     - DEBIAN_FRONTEND=noninteractive apt-get install -y xvfb
@@ -33,13 +44,8 @@ test_backend commons:
     - mvn test -pl commons
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' commons/target/site/jacoco/jacoco.csv
 
-test_backend annotation:
-  image: maven:3.6.0-jdk-8
-  services:
-    - postgres:9.6
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_annotation_template:
+  script: &test_backend_annotation_definition
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
 
@@ -47,11 +53,9 @@ test_backend annotation:
     - mvn test -pl annotation
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' annotation/target/site/jacoco/jacoco.csv
 
-test_backend CellDesigner-plugin:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+
+.test_backend_CellDesigner-plugin_template:
+  script: &test_backend_CellDesigner_plugin_definition
 #xvfb is for X11 connection used by some parts of the java code: https://stackoverflow.com/a/47575851/1127920
     - apt-get update
     - apt-get install -y xvfb
@@ -62,115 +66,74 @@ test_backend CellDesigner-plugin:
     - mvn test -pl CellDesigner-plugin
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' CellDesigner-plugin/target/site/jacoco/jacoco.csv
 
-test_backend converter:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_converter_template:
+  script: &test_backend_converter_definition
     - mvn -DskipTests=true clean install -pl converter -am
     - mvn test -pl converter
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter/target/site/jacoco/jacoco.csv
 
-test_backend converter-graphics:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_converter_graphics_template:
+  script: &test_backend_converter_graphics_definition
     - mvn -DskipTests=true clean install -pl converter-graphics -am
     - mvn test -pl converter-graphics
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-graphics/target/site/jacoco/jacoco.csv
 
-test_backend converter-CellDesigner:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_converter_CellDesigner_template:
+  script: &test_backend_converter_CellDesigner_definition
     - mvn -DskipTests=true clean install -pl converter-CellDesigner -am
     - mvn test -pl converter-CellDesigner
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-CellDesigner/target/site/jacoco/jacoco.csv
 
-test_backend converter-SBGN-ML:
-  image: maven:3.6.0-jdk-8
-  services:
-    - postgres:9.6
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_converter_SBGNML_template:
+  script: &test_backend_converter_SBGNML_definition
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl converter-SBGNML -am
     - mvn test -pl converter-SBGNML
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-SBGNML/target/site/jacoco/jacoco.csv
 
-test_backend converter-SBML:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_converter_SBML_template:
+  script: &test_backend_converter_SBML_definition
     - mvn -DskipTests=true clean install -pl converter-sbml -am
     - mvn test -pl converter-sbml
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-sbml/target/site/jacoco/jacoco.csv
 
-test_backend model:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_model_template:
+  script: &test_backend_model_definition
     - mvn -DskipTests=true clean install -pl model -am
     - mvn test -pl model
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' model/target/site/jacoco/jacoco.csv
 
-test_backend model-command:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_model_command_template:
+  script: &test_backend_model_command_definition
     - mvn -DskipTests=true clean install -pl model-command -am
     - mvn test -pl model-command
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' model-command/target/site/jacoco/jacoco.csv
 
-test_backend pathvisio:
-  image: maven:3.6.0-jdk-8
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_pathvisio_template:
+  script: &test_backend_pathvisio_definition
     - mvn -DskipTests=true clean install -pl pathvisio -am
     - mvn test -pl pathvisio
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' pathvisio/target/site/jacoco/jacoco.csv
 
-test_backend persist:
-  image: maven:3.6.0-jdk-8
-  services:
-    - postgres:9.6
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_persist_template:
+  script: &test_backend_persist_definition
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl persist -am
     - mvn test -pl persist
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' persist/target/site/jacoco/jacoco.csv
 
-test_backend rest-api:
-  image: maven:3.6.0-jdk-8
-  services:
-    - postgres:9.6
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_rest_template:
+  script: &test_backend_rest_definition
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl rest-api -am
     - mvn test -pl rest-api
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' rest-api/target/site/jacoco/jacoco.csv
 
-test_backend web:
-  image: maven:3.6.0-jdk-8
-  services:
-    - postgres:9.6
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_web_template:
+  script: &test_backend_web_definition
     - apt-get update
     - DEBIAN_FRONTEND=noninteractive apt-get install -y curl gnupg git ant
     - curl -sL https://deb.nodesource.com/setup_9.x | bash -
@@ -181,19 +144,127 @@ test_backend web:
     - mvn test -pl web
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' web/target/site/jacoco/jacoco.csv
 
-test_backend service:
-  image: maven:3.6.0-jdk-8
-  services:
-    - postgres:9.6
-  stage: test
-  coverage: '/(\d+.\d+) \% covered/'
-  script:
+.test_backend_service_template:
+  script: &test_backend_service_definition
     - mkdir /etc/minerva/
     - cp test-db-ci.properties /etc/minerva/db.properties
     - mvn -DskipTests=true clean install -pl service -am
     - mvn test -pl service
     - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' service/target/site/jacoco/jacoco.csv
 
+
+test:backend:commons:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_commons_definition
+
+test:backend:commons:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_commons_definition
+
+test:backend:annotation:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_annotation_definition
+
+test:backend:annotation:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_annotation_definition
+
+test:backend:CellDesigner_plugin:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_CellDesigner_plugin_definition
+
+test:backend:CellDesigner_plugin:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_CellDesigner_plugin_definition
+
+test:backend:converter:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_converter_definition
+
+test:backend:converter:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_converter_definition
+
+test:backend:converter_graphics:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_converter_graphics_definition
+
+test:backend:converter_graphics:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_converter_graphics_definition
+
+test:backend:converter_SBGNML:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_converter_SBGNML_definition
+
+test:backend:converter_SBGNML:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_converter_SBGNML_definition
+
+test:backend:converter_SBML:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_converter_SBML_definition
+
+test:backend:converter_SBML:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_converter_SBML_definition
+
+test:backend:model:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_model_definition
+
+test:backend:model:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_model_definition
+
+test:backend:model_command:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_model_command_definition
+
+test:backend:model_command:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_model_command_definition
+
+test:backend:pathvisio:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_pathvisio_definition
+
+test:backend:pathvisio:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_pathvisio_definition
+
+test:backend:persist:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_persist_definition
+
+test:backend:persist:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_persist_definition
+
+test:backend:rest:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_rest_definition
+
+test:backend:rest:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_rest_definition
+
+test:backend:service:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_service_definition
+
+test:backend:service:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_service_definition
+
+test:backend:web:jdk-8:
+  <<: *jdk_8_definition
+  script: *test_backend_web_definition
+
+test:backend:web:jdk-11:
+  <<: *jdk_11_definition
+  script: *test_backend_web_definition
+
 build_war:
   image: maven:3.6.0-jdk-8
   stage: build
@@ -213,18 +284,7 @@ build_war:
     - ant maven-build
     - cp web/target/web-1.0.war minerva.war
 
-java_11_compatibility:
-  image: maven:3.6-jdk-11
-  stage: test
-  script:
-    - apt-get update
-    - DEBIAN_FRONTEND=noninteractive apt-get install -y curl gnupg git ant
-    - curl -sL https://deb.nodesource.com/setup_9.x | bash -
-    - DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs
-
-    - mvn clean install -DskipTests=true
-
-dependency_conflict_check:
+test:dependency_conflict:
   image: maven:3.6.0-jdk-8
   stage: test
   script:
-- 
GitLab