diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 005d3b2718953e4a66cc232794645a130ac7fbc8..f5526455ded90c8138869e8d39aa7a653009edd3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,14 @@
 variables:
   GIT_SUBMODULE_STRATEGY: recursive
 
+before_script:
+  - export GRADLE_USER_HOME=`pwd`/.gradle
+
+cache:
+  paths:
+    - .gradle/wrapper
+    - .gradle/caches
+
 stages:
   - build
   - test
@@ -10,8 +18,6 @@ stages:
 build:
   image: openjdk:11
   stage: build
-  before_script:
-    - ls -lah *
   script:
     - "./gradlew assemble"
 
@@ -34,8 +40,8 @@ publish_dev:
   script:
     - "./gradlew setDevVersionForCI"
     - "./gradlew publish"
-  only:
-    - dev
+  except:
+    - main
 
 publish_main:
   image: openjdk:11
diff --git a/grammar2uml/build.gradle b/grammar2uml/build.gradle
index 05bd313f63ee8d8632d8d8f065620616fb095f36..9fa42e89267c036d9318bd4f0709fa1446baf4bd 100644
--- a/grammar2uml/build.gradle
+++ b/grammar2uml/build.gradle
@@ -50,6 +50,11 @@ task relast(type: JavaExec) {
     group = 'Build'
     main = "-jar"
 
+    doFirst {
+        delete "src/gen/jastadd/*"
+        mkdir  "src/gen/jastadd/"
+    }
+
     args = [
             "../libs/relast.jar",
             '../relast.preprocessor/src/main/jastadd/RelAst.relast',