67 lines
1.6 KiB
Bash
67 lines
1.6 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -eux
|
||
|
|
||
|
# shellcheck disable=SC1091
|
||
|
. .github/scripts/env.sh
|
||
|
# shellcheck disable=SC1091
|
||
|
. .github/scripts/common.sh
|
||
|
|
||
|
uname -a
|
||
|
uname -p
|
||
|
uname
|
||
|
pwd
|
||
|
env
|
||
|
|
||
|
# ensure ghcup
|
||
|
install_ghcup
|
||
|
|
||
|
# build
|
||
|
ghcup install ghc "${GHC_VERSION}"
|
||
|
ghcup set ghc "${GHC_VERSION}"
|
||
|
sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project # see comment in cabal.project
|
||
|
ecabal update
|
||
|
ecabal user-config diff
|
||
|
ecabal user-config init -f
|
||
|
"ghc-${GHC_VERSION}" --info
|
||
|
"ghc" --info
|
||
|
|
||
|
# https://github.com/haskell/cabal/issues/7313#issuecomment-811851884
|
||
|
if [ "$(getconf LONG_BIT)" == "32" ] || [ "${DISTRO}" == "CentOS" ] ; then
|
||
|
echo 'constraints: lukko -ofd-locking' >> cabal.project.release.local
|
||
|
fi
|
||
|
|
||
|
# shellcheck disable=SC2206
|
||
|
args=(
|
||
|
-w "ghc-$GHC_VERSION"
|
||
|
--disable-profiling
|
||
|
--enable-executable-stripping
|
||
|
--project-file=cabal.project.release
|
||
|
${ADD_CABAL_ARGS}
|
||
|
)
|
||
|
|
||
|
run cabal v2-build "${args[@]}" cabal-install
|
||
|
|
||
|
mkdir -p "$CI_PROJECT_DIR/out"
|
||
|
# shellcheck disable=SC2154
|
||
|
cp "$(cabal list-bin "${args[@]}" cabal-install:exe:cabal)" "$CI_PROJECT_DIR/out/cabal$ext"
|
||
|
cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json"
|
||
|
cd "$CI_PROJECT_DIR/out/"
|
||
|
|
||
|
# create tarball/zip
|
||
|
TARBALL_PREFIX="cabal-install-$("$CI_PROJECT_DIR/out/cabal" --numeric-version)"
|
||
|
case "${TARBALL_EXT}" in
|
||
|
zip)
|
||
|
zip "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
|
||
|
;;
|
||
|
tar.xz)
|
||
|
tar caf "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
|
||
|
;;
|
||
|
*)
|
||
|
fail "Unknown TARBALL_EXT: ${TARBALL_EXT}"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
rm cabal plan.json
|
||
|
|