diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1459340a73bf39db16b8e4f962feabc5367a1fa1..58d8f8f3f22c0177544d68505641bacb669427b5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,6 +26,7 @@ clean:
       when: on_success
   before_script:
     - git submodule update $GIT_SUBMODULE_OPTS
+    - git submodule foreach 'git pull --no-rebase origin $BUILD_BRANCH || true'
   script:
     - mvn $MAVEN_CLI_OPTS $MAVEN_BUILD_OPTS clean
 
@@ -35,6 +36,7 @@ build:
     key: Default
   before_script:
     - git submodule update $GIT_SUBMODULE_OPTS
+    - git submodule foreach 'git pull --no-rebase origin $BUILD_BRANCH || true'
   script:
     - mvn $MAVEN_CLI_OPTS $MAVEN_BUILD_OPTS verify
   artifacts:
@@ -51,10 +53,8 @@ test:
   cache:
     key: Default
   before_script:
-    - git submodule update $GIT_SUBMODULE_OPTS releng/org.fortiss.af3.target
-    - git submodule update $GIT_SUBMODULE_OPTS tests/af3
-    - git submodule update $GIT_SUBMODULE_OPTS features/af3
-    - git submodule update $GIT_SUBMODULE_OPTS features/tooling
+    - git submodule update $GIT_SUBMODULE_OPTS
+    - git submodule foreach 'git pull --no-rebase origin $BUILD_BRANCH || true'
     - xvfb.sh # Setup of a virtual display needed for bringing up eclipse
   script:
     - mvn $MAVEN_CLI_OPTS $MAVEN_TEST_OPTS $MAVEN_BUILD_DIR integration-test