diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..07c7188a7ee338060389b20fd1cf0920561706a2
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,32 @@
+stages:
+    - build
+    - test
+    - jar
+    - deploy
+
+build:
+    image: openjdk:11
+    stage: build
+    script:
+        - ./gradlew --console=plain --build-cache assemble
+    cache:
+        key: "$CI_COMMIT_REF_NAME"
+        policy: push
+        paths:
+            - build
+            - .gradle
+
+jar:
+    image: openjdk:8
+    stage: jar
+    script:
+        - ./gradlew --continue --console=plain --info buildPlugin
+    cache:
+        key: "$CI_COMMIT_REF_NAME"
+        policy: pull
+        paths:
+            - build
+            - .gradle
+    artifacts:
+        paths:
+            - "/builds/jastadd/*/build/libs/JastAddGrammar-*.jar"