diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 92d1035c490ae00d486eab03619766255e7c920f..71fba4155eb9ee80538e42b1746c79a1f19b0ede 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,6 @@ variables:
   GIT_SUBMODULE_STRATEGY: recursive
 
 stages:
-  - build
   - test
   - ragdoc_build
   - ragdoc_view
@@ -16,24 +15,46 @@ cache:
     - .gradle/wrapper
     - .gradle/caches
 
-build:
+## Hidden jobs, base configurations
+.test:
   image: openjdk:11
-  stage: build
+  stage: test
   script:
-    - ./gradlew --console=plain --no-daemon assemble
+    - ./gradlew --console=plain --no-daemon test
   artifacts:
+    reports:
+      junit: build/test-results/test/**/TEST-*.xml
     paths:
       - "src/gen"
     expire_in: 1 week
 
-test:
+.publish_dev:
   image: openjdk:11
-  stage: test
+  stage: deploy
   script:
-    - ./gradlew --console=plain --no-daemon test
-  artifacts:
-    reports:
-      junit: build/test-results/test/**/TEST-*.xml
+    - "./gradlew setDevVersionForCI"
+    - "./gradlew publish"
+
+## Real jobs
+test8:
+  extends: .test
+  image: "openjdk:8"
+
+test11:
+  extends: .test
+  image: "openjdk:11"
+
+publish_dev8:
+  extends: .publish_dev
+  image: "openjdk:8"
+  needs:
+    - test8
+
+publish_dev11:
+  extends: .publish_dev
+  image: "openjdk:11"
+  needs:
+    - test11
 
 ragdoc_build:
   image:
@@ -41,7 +62,7 @@ ragdoc_build:
     entrypoint: [""]
   stage: ragdoc_build
   needs:
-    - build
+    - test8
   script:
     - JAVA_FILES=$(find src/ -name '*.java')
     - /ragdoc-builder/start-builder.sh -excludeGenerated -d data/ $JAVA_FILES
@@ -75,7 +96,7 @@ pages:
   stage: deploy
   needs:
     - ragdoc_view
-    - test
+    - test8
   before_script:
     - pip install -U mkdocs mkdocs-macros-plugin mkdocs-git-revision-date-localized-plugin
   script:
@@ -85,12 +106,3 @@ pages:
   artifacts:
     paths:
       - public
-
-publish_dev:
-  image: openjdk:11
-  stage: deploy
-  needs:
-    - test
-  script:
-    - "./gradlew setDevVersionForCI"
-    - "./gradlew publish"
\ No newline at end of file