From 7af950f71d6b213bcaf75d7f036e3b36d084f32c Mon Sep 17 00:00:00 2001
From: Jueun Park <s5616012@mailbox.tu-dresden.de>
Date: Mon, 14 Mar 2022 14:42:00 +0900
Subject: [PATCH] add .gitlab-ci.yml

---
 .gitlab-ci.yml | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..77933420
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,86 @@
+variables:
+  GIT_SUBMODULE_STRATEGY: recursive
+
+stages:
+  - build
+  - test
+  - ragdoc
+  - publish
+
+build:
+  image: openjdk:11
+  stage: build
+  before_script:
+    - apt-get update && apt-get -y install graphviz
+  script:
+    - "./gradlew assemble"
+  artifacts:
+    paths:
+      - "src/gen/java"
+      - "src/gen/jastadd"
+
+test:
+  image: openjdk:11
+  stage: test
+  needs:
+    - build
+  before_script:
+    - apt-get update && apt-get -y install graphviz
+  script:
+    - "./gradlew test generateGrammarDiagrams"
+  artifacts:
+    reports:
+      junit: "*/build/test-results/test/TEST-*.xml"
+    paths:
+      - "src/gen/resources"
+
+ragdoc_build:
+  image:
+    name: "git-st.inf.tu-dresden.de:4567/jastadd/ragdoc-builder"
+    entrypoint: [""]
+  stage: ragdoc
+  needs:
+    - build
+  script:
+    - JAVA_FILES="$(find src/main -name '*.java') $(find src/gen -name '*.java')"
+    - /ragdoc-builder/start-builder.sh -excludeGenerated -d data/ $JAVA_FILES
+  artifacts:
+    paths:
+      - "data/"
+
+ragdoc_view:
+  image:
+    name: "git-st.inf.tu-dresden.de:4567/jastadd/ragdoc-view:relations"
+    entrypoint: [""]
+  stage: ragdoc
+  needs:
+    - ragdoc_build
+  script:
+    - DATA_DIR=$(pwd -P)/data
+    - mkdir -p pages/docs/ragdoc
+    - OUTPUT_DIR=$(pwd -P)/pages/docs/ragdoc
+    - cd /ragdoc-view/src/ && rm -rf data && ln -s $DATA_DIR
+    - /ragdoc-view/build-view.sh --output-path=$OUTPUT_DIR
+  only:
+    - dev
+    - main
+  artifacts:
+    paths:
+      - "pages/docs/ragdoc"
+
+pages:
+  image: python:3.10.0-bullseye
+  stage: publish
+  needs:
+    - ragdoc_view
+    - test
+  before_script:
+    - pip install -r pages/requirements.txt
+  script:
+    - cp -r src/gen/resources/diagrams/ pages/docs/diagrams
+    - cd pages && mkdocs build
+  artifacts:
+    paths:
+      - public/
+  only:
+    - main
-- 
GitLab