ghcup-hs/.gitlab/script/ghcup_version.sh

113 lines
2.6 KiB
Bash
Raw Permalink Normal View History

2020-04-15 07:45:18 +00:00
#!/bin/sh
set -eux
. "$( cd "$(dirname "$0")" ; pwd -P )/../ghcup_env"
mkdir -p "$CI_PROJECT_DIR"/.local/bin
ecabal() {
cabal --store-dir="$(pwd)"/.store "$@"
}
2020-04-15 13:07:37 +00:00
eghcup() {
2020-08-09 15:39:02 +00:00
ghcup -v -c -s file://$(pwd)/ghcup-${JSON_VERSION}.yaml "$@"
2020-04-15 13:07:37 +00:00
}
2020-04-15 07:45:18 +00:00
2020-04-29 21:01:51 +00:00
git describe --always
### build
2020-04-15 07:45:18 +00:00
ecabal update
2020-09-15 20:22:15 +00:00
ecabal install -w ghc-${GHC_VERSION} --installdir="$CI_PROJECT_DIR"/.local/bin hspec-discover
2020-04-15 07:45:18 +00:00
if [ "${OS}" = "DARWIN" ] ; then
2020-07-06 20:39:16 +00:00
ecabal build -w ghc-${GHC_VERSION} -ftui
2020-09-13 19:13:42 +00:00
ecabal test -w ghc-${GHC_VERSION} -ftui ghcup-test
2020-08-11 10:12:15 +00:00
elif [ "${OS}" = "LINUX" ] ; then
if [ "${BIT}" = "32" ] ; then
ecabal build -w ghc-${GHC_VERSION} -finternal-downloader -ftui -ftar
2020-09-13 19:13:42 +00:00
ecabal test -w ghc-${GHC_VERSION} -finternal-downloader -ftui -ftar ghcup-test
2020-08-11 10:12:15 +00:00
else
ecabal build -w ghc-${GHC_VERSION} -finternal-downloader -ftui
2020-09-13 19:13:42 +00:00
ecabal test -w ghc-${GHC_VERSION} -finternal-downloader -ftui ghcup-test
2020-08-11 10:12:15 +00:00
fi
else
2020-07-06 20:39:16 +00:00
ecabal build -w ghc-${GHC_VERSION} -finternal-downloader -ftui
2020-09-13 19:13:42 +00:00
ecabal test -w ghc-${GHC_VERSION} -finternal-downloader -ftui ghcup-test
2020-04-15 07:45:18 +00:00
fi
2020-08-11 10:12:15 +00:00
ecabal haddock -w ghc-${GHC_VERSION} -ftar
2020-07-21 23:11:37 +00:00
2020-09-15 20:22:15 +00:00
cp "$(ecabal new-exec -w ghc-${GHC_VERSION} --verbose=0 --offline sh -- -c 'command -v ghcup')" .
cp "$(ecabal new-exec -w ghc-${GHC_VERSION} --verbose=0 --offline sh -- -c 'command -v ghcup-gen')" .
2020-04-15 07:45:18 +00:00
cp ./ghcup "$CI_PROJECT_DIR"/.local/bin/ghcup
cp ./ghcup-gen "$CI_PROJECT_DIR"/.local/bin/ghcup-gen
### cleanup
2020-04-15 07:45:18 +00:00
rm -rf "${GHCUP_INSTALL_BASE_PREFIX}"/.ghcup
### manual cli based testing
2020-08-09 15:39:02 +00:00
ghcup-gen check -f ghcup-${JSON_VERSION}.yaml
2020-04-15 07:45:18 +00:00
2020-04-18 15:29:44 +00:00
eghcup --numeric-version
2020-04-15 07:45:18 +00:00
2020-04-15 13:07:37 +00:00
eghcup install ${GHC_VERSION}
eghcup set ${GHC_VERSION}
eghcup install-cabal ${CABAL_VERSION}
2020-04-15 07:45:18 +00:00
cabal --version
2020-04-15 13:07:37 +00:00
eghcup debug-info
2020-04-15 07:45:18 +00:00
2020-04-15 13:07:37 +00:00
eghcup list
eghcup list -t ghc
eghcup list -t cabal
2020-04-15 07:45:18 +00:00
ghc_ver=$(ghc --numeric-version)
2020-04-15 07:45:18 +00:00
ghc --version
ghci --version
ghc-$(ghc --numeric-version) --version
ghci-$(ghc --numeric-version) --version
# test installing new ghc doesn't mess with currently set GHC
# https://gitlab.haskell.org/haskell/ghcup-hs/issues/7
2020-04-29 18:14:38 +00:00
if [ "${OS}" = "LINUX" ] ; then
2020-04-29 17:17:59 +00:00
eghcup --downloader=wget install 8.4.4
2020-04-29 18:14:38 +00:00
else # test wget a bit
eghcup install 8.4.4
2020-04-29 17:12:58 +00:00
fi
[ "$(ghc --numeric-version)" = "${ghc_ver}" ]
eghcup set 8.4.4
eghcup set 8.4.4
[ "$(ghc --numeric-version)" = "8.4.4" ]
eghcup set ${GHC_VERSION}
[ "$(ghc --numeric-version)" = "${ghc_ver}" ]
eghcup rm 8.4.4
[ "$(ghc --numeric-version)" = "${ghc_ver}" ]
# install hls
if [ "${OS}" = "DARWIN" ] ; then
eghcup install hls
haskell-language-server-wrapper --version
elif [ "${OS}" = "LINUX" ] ; then
if [ "${BIT}" = "64" ] ; then
eghcup install hls
haskell-language-server-wrapper --version
fi
fi
2020-04-15 13:36:03 +00:00
eghcup rm $(ghc --numeric-version)
2020-04-15 13:07:37 +00:00
eghcup upgrade
eghcup upgrade -f
2020-04-15 07:45:18 +00:00