diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b8c052c35abe23d4b97d448566b5380ecf297af8..a18b0230245c576fe75ee6fd729b2bb3a1f328f2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -190,23 +190,32 @@ deploy-uc4-load-generator:
     - cd theodolite-quarkus
     - export GRADLE_USER_HOME=`pwd`/.gradle
 
-build-theodolite:
+build-theodolite-jvm:
   stage: build
   extends: .theodolite
-  script: ./gradlew --build-cache assemble -Dquarkus.package.type=native
-  # script: ./gradlew --build-cache assemble
+  script: ./gradlew --build-cache assemble
   artifacts:
     paths:
       - "theodolite-quarkus/build/lib/*"
       - "theodolite-quarkus/build/*-runner.jar"
-      # - "theodolite-quarkus/build/*-runner" # For native image
+    expire_in: 1 day
+
+build-theodolite-native:
+  stage: build
+  extends: .theodolite
+  before_script: gu install native-image # TODO move to image
+  script: ./gradlew --build-cache assemble -Dquarkus.package.type=native
+  artifacts:
+    paths:
+      - "theodolite-quarkus/build/*-runner"
     expire_in: 1 day
 
 test-theodolite:
   stage: test
   extends: .theodolite
   needs:
-    - build-theodolite
+    - build-theodolite-jvm
+    - build-theodolite-native
   script: ./gradlew test --stacktrace
 
 # Disabled for now
@@ -214,7 +223,8 @@ test-theodolite:
   stage: check
   extends: .theodolite
   needs:
-    - build-theodolite
+    - build-theodolite-jvm
+    - build-theodolite-native
     - test-theodolite
   script: ./gradlew ktlintCheck --continue
 
@@ -223,7 +233,8 @@ test-theodolite:
   stage: check
   extends: .theodolite
   needs:
-    - build-theodolite
+    - build-theodolite-jvm
+    - build-theodolite-native
     - test-theodolite
   script: ./gradlew detekt --continue