Commit 39c3889df1

Andrew Kelley <andrew@ziglang.org>
2022-12-04 23:45:15
CI: use cache directories local to the CI run
Override the cache directories because they won't actually help other CI runs which will be testing alternate versions of zig, and ultimately would just fill up space on the hard drive for no reason. In practice we did see one of the CI servers fill up too many files inside ~/.cache/zig, which caused certain file system operations to start returning ENOSPC, despite the hard drive having plenty of space left.
1 parent 594158a
ci/aarch64-linux-debug.sh
@@ -26,6 +26,13 @@ export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
 rm -rf build-debug
 mkdir build-debug
 cd build-debug
+
+# Override the cache directories because they won't actually help other CI runs
+# which will be testing alternate versions of zig, and ultimately would just
+# fill up space on the hard drive for no reason.
+export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache"
+export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache"
+
 cmake .. \
   -DCMAKE_INSTALL_PREFIX="stage3-debug" \
   -DCMAKE_PREFIX_PATH="$PREFIX" \
ci/aarch64-linux-release.sh
@@ -26,6 +26,13 @@ export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
 rm -rf build-release
 mkdir build-release
 cd build-release
+
+# Override the cache directories because they won't actually help other CI runs
+# which will be testing alternate versions of zig, and ultimately would just
+# fill up space on the hard drive for no reason.
+export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache"
+export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache"
+
 cmake .. \
   -DCMAKE_INSTALL_PREFIX="stage3-release" \
   -DCMAKE_PREFIX_PATH="$PREFIX" \
ci/aarch64-macos.sh
@@ -23,6 +23,13 @@ git fetch --tags
 
 mkdir build
 cd build
+
+# Override the cache directories because they won't actually help other CI runs
+# which will be testing alternate versions of zig, and ultimately would just
+# fill up space on the hard drive for no reason.
+export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache"
+export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache"
+
 PATH="$HOME/local/bin:$PATH" cmake .. \
   -DCMAKE_INSTALL_PREFIX="stage3-release" \
   -DCMAKE_PREFIX_PATH="$PREFIX" \
ci/x86_64-linux-debug.sh
@@ -26,6 +26,13 @@ export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
 rm -rf build-debug
 mkdir build-debug
 cd build-debug
+
+# Override the cache directories because they won't actually help other CI runs
+# which will be testing alternate versions of zig, and ultimately would just
+# fill up space on the hard drive for no reason.
+export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache"
+export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache"
+
 cmake .. \
   -DCMAKE_INSTALL_PREFIX="stage3-debug" \
   -DCMAKE_PREFIX_PATH="$PREFIX" \
ci/x86_64-linux-release.sh
@@ -26,6 +26,13 @@ export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
 rm -rf build-release
 mkdir build-release
 cd build-release
+
+# Override the cache directories because they won't actually help other CI runs
+# which will be testing alternate versions of zig, and ultimately would just
+# fill up space on the hard drive for no reason.
+export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache"
+export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache"
+
 cmake .. \
   -DCMAKE_INSTALL_PREFIX="stage3-release" \
   -DCMAKE_PREFIX_PATH="$PREFIX" \
ci/x86_64-macos.sh
@@ -29,8 +29,16 @@ git config core.abbrev 9
 git fetch --unshallow || true
 git fetch --tags
 
+rm -rf build
 mkdir build
 cd build
+
+# Override the cache directories because they won't actually help other CI runs
+# which will be testing alternate versions of zig, and ultimately would just
+# fill up space on the hard drive for no reason.
+export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-global-cache"
+export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-local-cache"
+
 cmake .. \
   -DCMAKE_INSTALL_PREFIX="stage3-release" \
   -DCMAKE_PREFIX_PATH="$PREFIX" \