From 05cf8d5681d2b25aeb54ec3a05c18b62e98b9291 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Mon, 21 Feb 2022 16:59:47 +0100
Subject: [PATCH] Update build process to dev/master split

- run build+test on every branch
- publish with pipeline-iid only in dev
- publish normally only in master
- make pages only in master
---
 .gitlab-ci.yml                                | 31 ++++++++++++++-----
 ...ast2uml.java-publishing-conventions.gradle |  8 +++++
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f212e14..66ee503 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,20 +12,35 @@ build:
   before_script:
     - ls -lah *
   script:
-    - ./gradlew assemble
+    - "./gradlew assemble"
 
 test:
   image: openjdk:11
   stage: test
+  needs:
+    - build
   script:
-    - ./gradlew test
+    - "./gradlew test"
   artifacts:
     reports:
-      junit: relast2uml.tests/build/test-results/test/TEST-*.xml
+      junit: "*/build/test-results/test/TEST-*.xml"
 
-publish:
+publish_dev:
   image: openjdk:11
   stage: publish
+  needs:
+    - test
+  script:
+    - "./gradlew setDevVersionForCI"
+    - "./gradlew publish"
+  only:
+    - dev
+
+publish_master:
+  image: openjdk:11
+  stage: publish
+  needs:
+    - test
   script:
     - "./gradlew publish"
   only:
@@ -34,11 +49,13 @@ publish:
 pages:
   image: python:3.7-alpine
   stage: publish
+  needs:
+    - test
   script:
-  - pip install -U sphinx sphinx-rtd-theme recommonmark sphinxemoji sphinx-markdown-tables
-  - sphinx-build -b html pages/ public
+    - "pip install -U sphinx sphinx-rtd-theme recommonmark sphinxemoji sphinx-markdown-tables"
+    - "sphinx-build -b html pages/ public"
   artifacts:
     paths:
     - public
   only:
-  - master
+    - master
diff --git a/buildSrc/src/main/groovy/relast2uml.java-publishing-conventions.gradle b/buildSrc/src/main/groovy/relast2uml.java-publishing-conventions.gradle
index 0a5d763..e3130c9 100644
--- a/buildSrc/src/main/groovy/relast2uml.java-publishing-conventions.gradle
+++ b/buildSrc/src/main/groovy/relast2uml.java-publishing-conventions.gradle
@@ -46,6 +46,14 @@ task newVersion() {
   }
 }
 
+task setDevVersionForCI() {
+  doFirst {
+    def props = new Properties()
+    props['version'] = version + "-$System.env.CI_PIPELINE_IID"
+    props.store(file(versionFile).newWriter(), null)
+  }
+}
+
 //679
 publishing {
   publications {
-- 
GitLab