diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2821735c50c4168df452f06b1db4446250325b46..cc4832b7dde515af24a582777577a085e6d67e32 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,43 +1,63 @@
-before_script:
- - pip install --user untangle
-
stages:
- build
- test
- report
+variables:
+ GRADLE_OPTS: "-Dorg.gradle.daemon=false"
+ TEST_REPORTS: "/builds/rschoene/eraser/eraser-base/build/reports/tests/test/"
+ JACOCO_REPORT: "/builds/rschoene/eraser/eraser-base/build/reports/jacoco/test/jacocoTestReport.xml"
+
+before_script:
+ - export GRADLE_USER_HOME=`pwd`/.gradle
+
build:
+ image: gradle:jdk8
stage: build
script:
- - ./gradlew --console=plain assemble
- retry: 2
- when: on_success
+ - ./gradlew --console=plain --build-cache assemble
+ cache:
+ key: "$CI_COMMIT_REF_NAME"
+ policy: push
+ paths:
+ - build
+ - .gradle
test:
+ image: gradle:jdk8
stage: test
script:
- - ./gradlew --continue --console=plain test jacocoTestReport
- retry: 2
- when: on_success
+ - ./gradlew --continue --console=plain check jacocoTestReport
+ cache:
+ key: "$CI_COMMIT_REF_NAME"
+ policy: pull
+ paths:
+ - build
+ - .gradle
artifacts:
when: always
- # paths:
- # - $TEST_REPORTS
- # - $JACOCO_DATA1
- # - $JACOCO_DATA2
+ paths:
+ - $TEST_REPORTS
+ - $JACOCO_REPORT
coverage:
- image: python:3.7.1-stretch
+ image: python:3.7.1-alpine
stage: report
dependencies:
- test
script:
- # - ./gradlew --continue --console=plain -x test
- - python2 print-coverage.py
+# - ./gradlew --continue --console=plain -x test jacocoTestReport
+ - pip install --user untangle
+ - python print-coverage.py
coverage: "/Covered (\\d{1,3}\\.\\d{2}%) of instructions for all projects\\./"
+ cache:
+ key: "$CI_COMMIT_REF_NAME"
+ policy: pull
+ paths:
+ - build
+ - .gradle
allow_failure: true
- when: on_success
artifacts:
when: always
- # paths:
- # - $COVERAGE_REPORTS
+ paths:
+ - $JACOCO_REPORT
diff --git a/README.md b/README.md
index 447a85398e03ceec5aa75c3edeefddeff8f3a80d..1f690dbf64d9ff6210a61ad8d5e2a0860be48da8 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
+[](https://git-st.inf.tu-dresden.de/rschoene/eraser/commits/master)
+[](https://git-st.inf.tu-dresden.de/rschoene/eraser/commits/master)
+
# ERASER - OpenLicht Knowledge Base
## Overview
diff --git a/eraser-base/build.gradle b/eraser-base/build.gradle
index 85a65b83c238bbb2b268d54fe3494d6a4f69bc86..e33ec3bede37eafa883466bd32cbd16883e26eba 100644
--- a/eraser-base/build.gradle
+++ b/eraser-base/build.gradle
@@ -32,6 +32,13 @@ run {
}
}
+test {
+ testLogging {
+ events "passed", "skipped", "failed"
+ exceptionFormat "full"
+ }
+}
+
jacocoTestReport {
reports {
xml.enabled true
diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag
index 44bd760f2c5923d3b2b885e77f1d532824488ea0..0da01f65292f82b4056ccf79015348b768f700a5 100644
--- a/eraser-base/src/main/jastadd/Item.jrag
+++ b/eraser-base/src/main/jastadd/Item.jrag
@@ -1,6 +1,8 @@
aspect ItemHandling {
- private static final java.text.DateFormat DateTimeItem.FORMAT = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+ private static final java.text.DateFormat DateTimeItem.FORMAT = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS") {{
+ setTimeZone(TimeZone.getTimeZone("UTC"));
+ }};
//--- getStateAsString ---
syn String Item.getStateAsString();
diff --git a/eraser-base/src/test/resources/tests/ppc3/output.eraser b/eraser-base/src/test/resources/tests/ppc3/output.eraser
index 46b76f0c1dd447ab18282e729dba93e7b277e6f5..414cf9778f02c5e4697e17be4b97da5fb4e38a6b 100644
--- a/eraser-base/src/test/resources/tests/ppc3/output.eraser
+++ b/eraser-base/src/test/resources/tests/ppc3/output.eraser
@@ -2,7 +2,7 @@ Color Item: id="color1" label="a Color Item" state="1,2,3" topic="item/hsb/color
Contact Item: id="contact1" label="a Contact Item" state="true" topic="item/bool/contact1/state" ;
Image Item: id="image1" label="an Image Item" state="def" topic="item/str/image1/state" ;
Location Item: id="location1" label="a Location Item" state="ghi" topic="item/str/location1/state" ;
-DateTime Item: id="datetime1" label="a DateTime Item" state="1970-01-18T21:43:35.826+01:00" topic="item/date/datetime1/state" ;
+DateTime Item: id="datetime1" label="a DateTime Item" state="1970-01-18T20:43:35.826" topic="item/date/datetime1/state" ;
Item: id="default1" label="a Default Item" state="pqr" topic="item/str/default1/state" ;
Dimmer Item: id="dimmer1" label="a Dimmer Item" state="123.0" topic="item/double/dimmer1/state" ;
Player Item: id="player1" label="a Player Item" state="jkl" topic="item/str/player1/state" ;
diff --git a/print-coverage.py b/print-coverage.py
index 00239ab85b7dfd926924cef6c79a0758a22ab3ed..30ee86794382a8e055ce3fa0e0746cd872981b34 100644
--- a/print-coverage.py
+++ b/print-coverage.py
@@ -1,6 +1,8 @@
+import os
import untangle
+print('Current path: ' + os.path.abspath(os.curdir))
obj = untangle.parse('eraser-base/build/reports/jacoco/test/jacocoTestReport.xml')
instructions = [o for o in obj.report.counter if o['type'] == 'INSTRUCTION'][0]
missed, covered = int(instructions['missed']), int(instructions['covered'])
# print missed / (missed + covered)
-print 'Covered %.2f%% of instructions for all projects.' % (missed * 100.0 / (missed + covered))
+print('Covered %.2f%% of instructions for all projects.' % (missed * 100.0 / (missed + covered)))