diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c4235fdcc53f9c6e7ad68db5ef70b60492800e7c..df11745ea32f9953235298f7c0a09e8948d73e48 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,11 +23,15 @@ default:
     - 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
+  after_script:
+    - cd gluon/openwrt/dl && git add . && git commit -m "update DL cache" && git push || true
 
 generate_date:
   stage: generate_date
   before_script:
     - echo dummy
+  after_script:
+    - echo dummy
   script: 
     - date '+%Y-%m-%d' > build.date
   artifacts:
@@ -54,7 +58,6 @@ update:
     - 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/