diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ef4356f131308d94d529589b7f9e766bbc6cb338..c29a2327252d029f2d2edd2e3421616c585af0e7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,6 +5,7 @@ variables:
   DOCKER_DRIVER: overlay2
 
 stages:
+  - update
   - build
   - package
 
@@ -86,10 +87,14 @@ target:x86-64:
   variables:
     GLUON_TARGET: x86-64
 
+update:
+  stage: update
+  script:
+    - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
+
 package:
   stage: package
   script:
-    - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
     - for branch in "stable" "beta" "nightly" "experimental"; do make -C gluon manifest GLUON_BRANCH="$branch" GLUON_SITEDIR="$CI_PROJECT_DIR" V=1; done
     - if [ -n "$GLUON_SIGN_KEY" ]; then cd gluon && for branch in "nightly" "experimental"; do ./contrib/sign.sh <(echo "$GLUON_SIGN_KEY") "output/images/sysupgrade/$branch.manifest"; done; fi
   artifacts: