diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d03e045a112387651ce5019a61df33531aa9463c..ef9c6b62709696a62cb7230298d030e020619cce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,9 +23,6 @@ defaults:
     - git -C ffs-openwrt-dl-cache pull
     - rm -rf gluon/openwrt/dl && mkdir -p gluon/openwrt && ln -s ../../ffs-openwrt-dl-cache gluon/openwrt/dl
     - rm -rf gluon/openwrt/staging_dir && mkdir -p staging_dir && ln -s ../../staging_dir gluon/openwrt/staging_dir
-  script:
-    - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$GLUON_TARGET" GLUON_BRANCH=stable FFS_BUILD_DATE=$(cat build.date) BROKEN="$BROKEN" V=1 -j`nproc`
-    - cd gluon/openwrt/dl && git add . && git commit -m "update DL cache" && git push || true
 
 generate_date:
   stage: generate_date
@@ -55,6 +52,9 @@ update:
   stage: build
   except:
     - tags
+  script:
+    - make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$GLUON_TARGET" GLUON_BRANCH=stable FFS_BUILD_DATE=$(cat build.date) BROKEN="$BROKEN" V=1 -j`nproc`
+    - cd gluon/openwrt/dl && git add . && git commit -m "update DL cache" && git push || true
   artifacts: 
     paths:
       - gluon/output/