diff --git a/.travis.yml b/.travis.yml index f75bbfa82d0dc9a23bce691ad8b99da4fffab186..95f89ee003f10fb23f7a3606d2d1c4fc17d597b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,9 +2,9 @@ language: c # make the validator happy sudo: false matrix: include: - # CABALVER=1.16 is the earliest available in the PPA - - env: STACK="stack --resolver lts-5" + - env: STACK_RESOLVER=lts-5.18 os: osx + # CABALVER=1.16 is the earliest available in the PPA - env: GHCVER=7.4.2 CABALVER=1.16 PREBUILD="sed -i.bak /utimensat/d configure.ac" addons: diff --git a/appveyor.yml b/appveyor.yml index 4fe35170f50f14f9cf0d0fcfdf968dd80b353895..c4bdd2385cf27185c6b90712c434d4c776c3447b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,18 +7,20 @@ environment: # use a short path prefix to avoid running into path-length limitations STACK_ROOT: C:\sr matrix: - - DEPS: Win32-2.6.0.0 - STACK: stack --skip-msys --resolver lts-9 - - DEPS: Win32-2.4.0.0 - STACK: stack --skip-msys --resolver lts-7 - - DEPS: # Win32-2.3.1.0 - STACK: stack --skip-msys --resolver lts-5 - - DEPS: Win32-2.3.0.1 - STACK: stack --skip-msys --resolver lts-2 + - STACK_FLAGS: --skip-msys + STACK_RESOLVER: lts-9.6 + STACK_EXTRA_DEPS: Win32-2.6.0.0 + - STACK_FLAGS: --skip-msys + STACK_RESOLVER: lts-7.24 + STACK_EXTRA_DEPS: Win32-2.4.0.0 + - STACK_FLAGS: --skip-msys + STACK_RESOLVER: lts-5.18 + # STACK_EXTRA_DEPS: Win32-2.3.1.0 + - STACK_FLAGS: --skip-msys + STACK_RESOLVER: lts-2.22 + STACK_EXTRA_DEPS: Win32-2.3.0.1 PREBUILD: sed -i.bak -e /CreateSymbolicLinkW/d -e /GetFinalPathNameByHandleW/d configure.ac -cache: -- "%STACK_ROOT%" install: - set PATH=%CD%\_stack;C:\msys64\usr\bin;%PATH% - sh tools/testscript prepare diff --git a/tools/testscript b/tools/testscript index 5161bbdbc83ea27cfd9cfdb9a20ab6ca04f32d6f..ea2c8399c2d009eff8c0868a8b0f9c19e1848f74 100755 --- a/tools/testscript +++ b/tools/testscript @@ -4,29 +4,32 @@ set -eu ghcflags="-rtsopts -threaded -Werror" testflags="CreateDirectoryIfMissing001.num-repeats=100000 +RTS -N2" -before_build() { - # workaround for https://github.com/haskell/cabal/issues/2375 - if grep "^resolver: lts-2" stack.yaml >/dev/null 2>&1; then - sed -i.bak 's/WithHooks autoconfUserHooks//' Setup.hs - stack exec sh ./configure - fi -} - prepare() { eval "${PREBUILD-}" - if [ "${STACK+x}" ]; then - - stack="$STACK --no-terminal" - mkdir -p _stack + if [ -f configure.ac ]; then + autoreconf -i + fi + if [ "${STACK_RESOLVER+x}" ]; then # workaround for commercialhaskell/stack#3213: # use official GHC tarball instead of stack's patched tarball - if [ "${LOCALAPPDATA-}" ] && printf "%s\n" "$STACK" | grep '\<lts-2\>'; then - dir=`cygpath -u "$LOCALAPPDATA"`/Programs/stack/x86_64-windows - mkdir -p "$dir" - curl -L "https://downloads.haskell.org/~ghc/7.8.4/ghc-7.8.4-x86_64-unknown-mingw32.tar.xz" | tar -C "$dir" -xJ - echo installed >"$dir/ghc-7.8.4.installed" - fi + case $STACK_RESOLVER in + lts-2*) + if [ "${LOCALAPPDATA-}" ]; then + dir=`cygpath -u "$LOCALAPPDATA"`/Programs/stack/x86_64-windows + mkdir -p "$dir" + curl -L "https://downloads.haskell.org/~ghc/7.8.4/ghc-7.8.4-x86_64-unknown-mingw32.tar.xz" | tar -C "$dir" -xJ + echo installed >"$dir/ghc-7.8.4.installed" + fi;; + esac + + cat >stack.yaml <<EOF +resolver: $STACK_RESOLVER +packages: [.] +extra-deps: [${STACK_EXTRA_DEPS-}] +EOF + stack="stack --no-terminal ${STACK_FLAGS-}" + mkdir -p _stack ( cd _stack @@ -56,12 +59,6 @@ prepare() { tools/retry $stack setup >/dev/null $stack ghc -- --version $stack --version - for dep in ${DEPS-}; do - url=https://hackage.haskell.org/package/${dep}/${dep}.tar.gz - curl --retry 3 -fsLS "$url" | tar xzf - - done - $stack init && : - $stack test --install-ghc --only-dependencies $stack list-dependencies else @@ -72,16 +69,21 @@ prepare() { cabal install --enable-tests --only-dependencies fi - if [ -f configure.ac ]; then - autoreconf -i - fi } build() { - before_build - if [ "${STACK+x}" ]; then - - stack="$STACK --no-terminal" + if [ "${STACK_RESOLVER+x}" ]; then + + # workaround for https://github.com/haskell/cabal/issues/2375 + case $STACK_RESOLVER in + lts-2*) + if [ -f configure ]; then + sed -i.bak 's/WithHooks autoconfUserHooks//' Setup.hs + stack exec sh ./configure + fi;; + esac + + stack="stack --no-terminal ${STACK_FLAGS-}" $stack test --haddock --no-haddock-deps \ --ghc-options "$ghcflags" \ --test-arguments "$testflags"