diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c29a2327252d029f2d2edd2e3421616c585af0e7..2d6f4df3d44f6cc290a4443296aa0e3afcc5880d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,11 +21,8 @@ stages:
       - gluon/output/
     expire_in: 1 day
   cache:
-    paths:
-      - gluon/openwrt/dl
-      - gluon/openwrt/staging_dir
-      - gluon/openwrt/feeds
-    key: "target-$GLUON_TARGET"
+    key: "gluon-update"
+    policy: "pull"
  
 target:ar71xx-generic:
   extends: .target
@@ -91,6 +88,11 @@ update:
   stage: update
   script:
     - make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR"
+  cache:
+    paths:
+      - gluon/*
+    key: "gluon-update"
+    policy: push
 
 package:
   stage: package