diff --git a/.gitignore b/.gitignore
index 942a0f82d06aab263bd577c8350225f3ced00d3f..56bcd5b8b434cd3c0a3e8f8b516f1b56c965f2c1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ build/
 *.bkp
 *.out
 .classpath
+/.gradle/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0c0cf6a615bffff687336aed8d05b3c3074da86c..354ec204fd19040e559837108f6baa75a8545766 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,14 +26,10 @@ tests:
     - ./gradlew test 
     - ./gradlew jacocoMergeReport
   artifacts:
+    when: always
+    untracked: true
     paths:
-      # Tests report
-      - build/reports/tests
-      # Tests coverage report
-      - build/reports/jacoco/merge/html/
-    when: on_failure
-    expire_in: 8d
-  except:
-    - tags
+      - build
+    expire_in: 10d
 
 
diff --git a/.gradle/4.7/fileHashes/fileHashes.bin b/.gradle/4.7/fileHashes/fileHashes.bin
index 1a942803e67339dccfb10e97a1f145adf19948e0..438aae799b055d99f2a6d0efdb533e0b837854d3 100644
Binary files a/.gradle/4.7/fileHashes/fileHashes.bin and b/.gradle/4.7/fileHashes/fileHashes.bin differ
diff --git a/.gradle/4.7/fileHashes/fileHashes.lock b/.gradle/4.7/fileHashes/fileHashes.lock
index 08cb9b70cbab929f4827302bd5fb47026cb6bd76..479ff4a9a45c565631a879bb3e09522a9879efc8 100644
Binary files a/.gradle/4.7/fileHashes/fileHashes.lock and b/.gradle/4.7/fileHashes/fileHashes.lock differ
diff --git a/.gradle/4.7/taskHistory/taskHistory.bin b/.gradle/4.7/taskHistory/taskHistory.bin
index bd108cb97655bd1ccfcee42a99d2c64f9e5b22f9..777af9ed4228bd0fc9336df5aa80e9f72298dbcc 100644
Binary files a/.gradle/4.7/taskHistory/taskHistory.bin and b/.gradle/4.7/taskHistory/taskHistory.bin differ
diff --git a/.gradle/4.7/taskHistory/taskHistory.lock b/.gradle/4.7/taskHistory/taskHistory.lock
index ae801af9e030d251278755a71377a76265960342..81669c8aaee0c8dbb7fda6f894aee61ae7be2d87 100644
Binary files a/.gradle/4.7/taskHistory/taskHistory.lock and b/.gradle/4.7/taskHistory/taskHistory.lock differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index ec707a63c6677a9ef2c6ca3ed5ef4b19e456a170..1a5409034bef115610829e9d8a11cb332ac6f7ea 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
index f135d0ff9a9df2097df0cfe974664bd91519d9bd..905a8e1a1bcac2618118b73bce8f65eec5ae67bd 100644
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/build.gradle b/build.gradle
index 55605be580cd623c342f86a03d67914c519a42e2..aa3dd8a9b3ddd164548ca0a269c71117da665b28 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,11 @@
 // Apply the java plugin to add support for Java
 apply plugin: 'java'
 apply plugin: 'application'
+apply plugin: 'jacoco'
+
+jacoco {
+    toolVersion = "0.8.1" //checked at http://www.eclemma.org/jacoco/
+}
 
 version = '1.0.0'
 applicationName = "ImmutableComplex"
@@ -37,3 +42,13 @@ installLocally.onlyIf {
 	project.hasProperty('installDir')
 }
 
+jacocoTestReport {
+    reports {
+        xml.enabled false
+        csv.enabled false
+        html.destination "${buildDir}/jacocoHtml"
+    }
+}
+
+test.finalizedBy(jacocoTestReport)
+