From 85253ddcc345bea729308bf30bbc8ce79b179caa Mon Sep 17 00:00:00 2001
From: Bryan Richter <bryan@haskell.foundation>
Date: Thu, 9 Mar 2023 13:01:08 +0200
Subject: [PATCH] Cache brew and the things it installs

---
 .gitlab-ci.yml  | 3 +++
 .gitlab/brew.sh | 9 +++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0dc0a46726..3df905884a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -100,6 +100,9 @@ build-aarch64-darwin:
     expire_in: 2 week
     paths:
       - out/*
+  cache:
+    paths:
+      - .brew
 
 build-x86_64-windows:
   extends: .build
diff --git a/.gitlab/brew.sh b/.gitlab/brew.sh
index 405a4ed497..a7bc602412 100644
--- a/.gitlab/brew.sh
+++ b/.gitlab/brew.sh
@@ -6,10 +6,11 @@ set -Eeuo pipefail
 # FIXME: Use brew in supported way. See
 # https://docs.brew.sh/Installation#untar-anywhere-unsupported
 brew_dir="${CI_PROJECT_DIR}/.brew"
-# Temporarily? ensure there's no caching accidentally happening.
-rm -fr "${brew_dir}"
-mkdir -p "${brew_dir}"
-curl -L "https://github.com/Homebrew/brew/archive/refs/tags/${BREW_VERSION}.tar.gz" | tar xz --strip 1 -C "${brew_dir}"
+
+if [ ! -e "${brew_dir}" ]; then
+    mkdir -p "${brew_dir}"
+    curl -L "https://github.com/Homebrew/brew/archive/refs/tags/${BREW_VERSION}.tar.gz" | tar xz --strip 1 -C "${brew_dir}"
+fi
 
 export PATH="${brew_dir}/bin:${brew_dir}/sbin:$PATH"
 
-- 
GitLab