gitlab-ci: Directly use host-mapped directory for ccache
authorMichel Dänzer <mdaenzer@redhat.com>
Wed, 20 Nov 2019 08:11:35 +0000 (09:11 +0100)
committerMichel Dänzer <michel@daenzer.net>
Thu, 21 Nov 2019 09:13:43 +0000 (10:13 +0100)
Use hardcoded /cache/mesa/ccache for the cache, so it will be shared by
all jobs of all Mesa projects running on the same runner host. This
should increase the hit rate and decrease the worst case storage used.

Further benefits of directly using a host-mapped directory:

* Saves up to ~1 minute per job for restoring and saving the cache
  contents via the GitLab CI cache mechanism
* Cache contents generated by failed jobs are no longer lost
* Jobs running in parallel on the same runner host can get hits from
  each other

Also enable compression, so the default maximum cache size of 5G might
be sufficient.

v2:
* Move CCACHE_DIR variable to the .build-linux template

Suggested-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net> # v1
.gitlab-ci.yml

index 012a6d79f2582ed3e9f42c0d97400698b7fe06b1..849331ced1ea5e1a028fbb93c442fd0e5fd3ef5f 100644 (file)
@@ -166,22 +166,16 @@ arm_test:
 # Just Linux
 .build-linux:
   extends: .build-common
-  cache:
-    key: ${CI_JOB_NAME}
-    paths:
-      - ccache
   variables:
     CCACHE_COMPILERCHECK: "content"
+    CCACHE_COMPRESS: "true"
+    CCACHE_DIR: /cache/mesa/ccache
   # Use ccache transparently, and print stats before/after
   before_script:
     - export PATH="/usr/lib/ccache:$PATH"
     - export CCACHE_BASEDIR="$PWD"
-    - export CCACHE_DIR="$PWD/ccache"
-    - ccache --max-size=1500M
-    - ccache --zero-stats || true
-    - ccache --show-stats || true
+    - ccache --show-stats
   after_script:
-    - export CCACHE_DIR="$PWD/ccache"
     - ccache --show-stats
 
 .build-windows: