ghcup-hs/.github/scripts/cabal-cache.sh
2023-01-15 23:06:59 +08:00

47 lines
899 B
Bash

#!/bin/sh
set -eux
. .github/scripts/prereq.sh
. .github/scripts/common.sh
# ensure ghcup
if ! command -v ghcup ; then
install_ghcup
fi
if [ "${RUNNER_OS}" = "macOS" ] ; then
rm -rf "${CABAL_DIR}"/store/*
fi
# ensure ghc
ghcup install ghc --set "${GHC_VER}"
ghcup install cabal --set "${CABAL_VER}"
ghc --version
cabal --version
cabal update
cd /tmp
cabal unpack cabal-install-3.8.1.0
cd cabal-install-3.8.1.0
if [ "${DISTRO}" = "Alpine" ] ; then
cabal build --constraint='lukko -ofd-locking' --ghc-options='-split-sections -optl-static' cabal-install:exe:cabal
elif [ "${DISTRO}" = "Ubuntu" ] ; then
cabal build --constraint='lukko -ofd-locking' cabal-install:exe:cabal
else
cabal build cabal-install:exe:cabal
fi
binary=$(cabal list-bin cabal-install:exe:cabal)
cd ..
mkdir -p "${CI_PROJECT_DIR}/out"
strip_binary "${binary}"
cp "${binary}" "${CI_PROJECT_DIR}/out/${ARTIFACT}"