gitlab-ci: Reenable ccache but disable it during the initial meson call
authorChristoph Reiter <creiter@src.gnome.org>
Wed, 11 Apr 2018 10:18:55 +0000 (12:18 +0200)
committerChristoph Reiter <creiter@src.gnome.org>
Wed, 11 Apr 2018 13:33:00 +0000 (15:33 +0200)
There where some problems (??) with ccache not detecting changes during meson
checks. Setting CCACHE_DISABLE during the meson execution makes ccache not use
the cache and pass things directly to the compiler.

.gitlab-ci.yml
.gitlab-ci/test-docker.sh
.gitlab-ci/test-msys2.sh

index bbabf994af6e5dae2c229471d7b4204ef81e346e..5c1580ca87c730608198abbea751e15494d06e7c 100644 (file)
@@ -2,25 +2,28 @@ stages:
   - build
   - flatpak
 
-gtk:
+.cache-paths: &cache-paths
+  paths:
+    - _ccache/
+    - subprojects/gdk-pixbuf/
+    - subprojects/glib/
+    - subprojects/graphene/
+    - subprojects/libepoxy/
+    - subprojects/pango/
+
+fedora-x86_64:
   image: ebassi/gitlab-gtk:latest
   stage: build
-  before_script:
-    - export CCACHE_DISABLE=true_
   script:
     - bash -x ./.gitlab-ci/test-docker.sh
-  cache:
-    paths:
-      - subprojects/gdk-pixbuf/
-      - subprojects/glib/
-      - subprojects/graphene/
-      - subprojects/libepoxy/
-      - subprojects/pango/
   artifacts:
     when: on_failure
     name: "gtk-${CI_COMMIT_REF_NAME}"
     paths:
       - "${CI_PROJECT_DIR}/_build/meson-logs"
+  cache:
+    key: "$CI_JOB_NAME"
+    <<: *cache-paths
 
 .mingw-defaults: &mingw-defaults
   stage: build
@@ -29,8 +32,11 @@ gtk:
   script:
     - C:\msys64\usr\bin\pacman --noconfirm -Syyuu
     - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
+  cache:
+    key: "%CI_JOB_NAME%"
+    <<: *cache-paths
 
-mingw32:
+msys2-mingw32:
   variables:
     MSYSTEM: "MINGW32"
     CHERE_INVOKING: "yes"
index 48b22d25ca5bda1482ca2b5b66aae720e272f0eb..47cb9e9dafb5e64065ad39eebc3d2bc4af5ff0a8 100755 (executable)
@@ -4,16 +4,25 @@ set -e
 
 srcdir=$(pwd)
 
+mkdir -p _ccache
+export CCACHE_BASEDIR="$(pwd)"
+export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
+
+ccache --zero-stats
+ccache --show-stats
+export CCACHE_DISABLE=true
 meson \
         -Dx11-backend=true \
         -Dwayland-backend=true \
         -Dbroadway-backend=true \
         -Dvulkan=yes \
         _build $srcdir
+unset CCACHE_DISABLE
 
 cd _build
 
 ninja
+ccache --show-stats
 
 xvfb-run -a -s "-screen 0 1024x768x24" \
     meson test \
index da0599ad4bb1386ea416a17c9208dbe2dfc953ff..aacc88d048ba420d253456cefe3e60c8ce9a5e8b 100644 (file)
@@ -16,6 +16,7 @@ pacman --noconfirm -S --needed \
     base-devel \
     git \
     mingw-w64-$MSYS2_ARCH-toolchain \
+    mingw-w64-$MSYS2_ARCH-ccache \
     mingw-w64-$MSYS2_ARCH-pkg-config \
     mingw-w64-$MSYS2_ARCH-gobject-introspection \
     mingw-w64-$MSYS2_ARCH-meson \
@@ -32,11 +33,20 @@ pacman --noconfirm -S --needed \
     mingw-w64-$MSYS2_ARCH-gst-plugins-bad \
     mingw-w64-$MSYS2_ARCH-shared-mime-info
 
+mkdir -p _ccache
+export CCACHE_BASEDIR="$(pwd)"
+export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
+
 # Build
+ccache --zero-stats
+ccache --show-stats
+export CCACHE_DISABLE=true
 meson \
     -Denable-x11-backend=false \
     -Denable-wayland-backend=false \
     -Denable-win32-backend=true \
     _build
+unset CCACHE_DISABLE
 
 ninja -C _build
+ccache --show-stats