diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 752e918417b..3df905884ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -94,10 +94,15 @@ build-aarch64-darwin: TARBALL_ARCHIVE_SUFFIX: aarch64-darwin TARBALL_EXT: tar.xz ADD_CABAL_ARGS: "" + # Update periodically. + BREW_VERSION: 4.0.5 artifacts: 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 de769632e6f..a7bc6024124 100644 --- a/.gitlab/brew.sh +++ b/.gitlab/brew.sh @@ -1,10 +1,18 @@ #!/usr/bin/env bash -set -Eeuxo pipefail +set -Eeuo pipefail # Install brew locally in the project dir. Packages will also be installed here. -[ -e "$CI_PROJECT_DIR/.brew" ] || git clone --depth=1 https://github.com/Homebrew/brew $CI_PROJECT_DIR/.brew -export PATH="$CI_PROJECT_DIR/.brew/bin:$CI_PROJECT_DIR/.brew/sbin:$PATH" +# FIXME: Use brew in supported way. See +# https://docs.brew.sh/Installation#untar-anywhere-unsupported +brew_dir="${CI_PROJECT_DIR}/.brew" + +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" # make sure to not pollute the machine with temp files etc mkdir -p $CI_PROJECT_DIR/.brew_cache