Commit 4004b2c3 authored by Edward Z. Yang's avatar Edward Z. Yang
Browse files

Move Travis script to shell script, control GHC 7.0/7.2 testing via environment variable.


Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
parent e3a3b01b
......@@ -8,7 +8,7 @@ env:
- GHCVER=7.6.3
- GHCVER=7.8.4
- GHCVER=7.10.3
- GHCVER=8.0.1
- GHCVER=8.0.1 TEST_OLDER=YES
# TODO add PARSEC_BUNDLED=YES when it's so
- GHCVER=head
......@@ -17,7 +17,7 @@ before_install:
- travis_retry sudo add-apt-repository -y ppa:hvr/ghc
- travis_retry sudo apt-get update
- travis_retry sudo apt-get install cabal-install-1.24 ghc-$GHCVER-prof ghc-$GHCVER-dyn happy
- travis_retry sudo apt-get install ghc-7.0.4-prof ghc-7.0.4-dyn ghc-7.2.2-prof ghc-7.2.2-dyn
- if [ "$TEST_OLDER" == "YES" ]; then travis_retry sudo apt-get install ghc-7.0.4-prof ghc-7.0.4-dyn ghc-7.2.2-prof ghc-7.2.2-dyn; fi
- export PATH=$HOME/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/1.24/bin:$PATH
- git version
......@@ -31,62 +31,7 @@ install:
# ./dist/setup/setup here instead of cabal-install to avoid breakage when the
# build config format changed.
script:
# We depend on parsec nowadays, which isn't distributed with GHC <8.0
- if [ "$PARSEC_BUNDLED" != "YES" ]; then cabal install parsec; fi
# Cabal
- cd Cabal
# Test if gen-extra-source-files.sh was run recently enough
- ./misc/gen-extra-source-files.sh Cabal.cabal
- ./misc/travis-diff-files.sh
- mkdir -p ./dist/setup
- cp Setup.hs ./dist/setup/setup.hs
- ghc --make -odir ./dist/setup -hidir ./dist/setup -i -i. ./dist/setup/setup.hs -o ./dist/setup/setup -Wall -Werror -threaded # the command cabal-install would use to build setup
# Install test dependencies only after setup is built
- cabal install --only-dependencies --enable-tests --enable-benchmarks
- ./dist/setup/setup configure --user --ghc-option=-Werror --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging
- ./dist/setup/setup build # this builds all libraries and executables (including tests/benchmarks)
- ./dist/setup/setup haddock # see https://github.com/haskell/cabal/issues/2198
- ./dist/setup/setup test --show-details=streaming --test-option=--hide-successes
# Redo the package tests with different versions of GHC
- CABAL_PACKAGETESTS_WITH_GHC=/opt/ghc/7.0.4/bin/ghc ./dist/setup/setup test package-tests --show-details=streaming
- CABAL_PACKAGETESTS_WITH_GHC=/opt/ghc/7.2.2/bin/ghc ./dist/setup/setup test package-tests --show-details=streaming
- cabal check
- cabal sdist # tests that a source-distribution can be generated
# The following scriptlet checks that the resulting source distribution can be
# built & installed.
- function install_from_tarball {
export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
if [ -f "dist/$SRC_TGZ" ]; then
cabal install -j1 "dist/$SRC_TGZ" -v2;
else
echo "expected 'dist/$SRC_TGZ' not found";
exit 1;
fi
}
- install_from_tarball
# Also build cabal-install.
- cd ../cabal-install
- ../Cabal/misc/gen-extra-source-files.sh cabal-install.cabal
- ../Cabal/misc/travis-diff-files.sh
- cabal install happy
- cabal install --only-dependencies --enable-tests --enable-benchmarks
- cabal configure --user --ghc-option=-Werror --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging
- cabal build
- cabal haddock # see https://github.com/haskell/cabal/issues/2198
- cabal test unit-tests --show-details=streaming --test-option=--hide-successes
- cabal test integration-tests --show-details=streaming --test-option=--hide-successes
- cabal check
- ./dist/setup/setup sdist
- install_from_tarball
# Check what we got
- $HOME/.cabal/bin/cabal --version
- ./travis-script.sh
matrix:
allow_failures:
......
#!/usr/bin/env bash
set -ev
# Initial working directory: base directory of Git repository
# We depend on parsec nowadays, which isn't distributed with GHC <8.0
if [ "$PARSEC_BUNDLED" != "YES" ]; then
cabal install parsec
fi
# ---------------------------------------------------------------------
# Cabal
# ---------------------------------------------------------------------
cd Cabal
# Test if gen-extra-source-files.sh was run recently enough
./misc/gen-extra-source-files.sh Cabal.cabal
./misc/travis-diff-files.sh
# Build the setup script in the same way that cabal-install would:
mkdir -p ./dist/setup
cp Setup.hs ./dist/setup/setup.hs
ghc --make \
-odir ./dist/setup -hidir ./dist/setup -i -i. \
./dist/setup/setup.hs -o ./dist/setup/setup \
-Wall -Werror -threaded
# Install test dependencies only after setup is built
cabal install --only-dependencies --enable-tests --enable-benchmarks
./dist/setup/setup configure \
--user --ghc-option=-Werror --enable-tests --enable-benchmarks \
-v2 # -v2 provides useful information for debugging
# Build all libraries and executables (including tests/benchmarks)
./dist/setup/setup build
./dist/setup/setup haddock # see https://github.com/haskell/cabal/issues/2198
./dist/setup/setup test --show-details=streaming --test-option=--hide-successes
# Redo the package tests with different versions of GHC
if [ "$TEST_OLDER" == "YES" ]; then
CABAL_PACKAGETESTS_WITH_GHC=/opt/ghc/7.0.4/bin/ghc \
./dist/setup/setup test package-tests --show-details=streaming
CABAL_PACKAGETESTS_WITH_GHC=/opt/ghc/7.2.2/bin/ghc \
./dist/setup/setup test package-tests --show-details=streaming
fi
cabal check
cabal sdist # tests that a source-distribution can be generated
# The following scriptlet checks that the resulting source distribution can be
# built & installed.
function install_from_tarball {
export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
if [ -f "dist/$SRC_TGZ" ]; then
cabal install -j1 "dist/$SRC_TGZ" -v2;
else
echo "expected 'dist/$SRC_TGZ' not found";
exit 1;
fi
}
install_from_tarball
# ---------------------------------------------------------------------
# cabal-install
# ---------------------------------------------------------------------
cd ../cabal-install
../Cabal/misc/gen-extra-source-files.sh cabal-install.cabal
../Cabal/misc/travis-diff-files.sh
cabal install happy
cabal install --only-dependencies --enable-tests --enable-benchmarks
cabal configure \
--user --ghc-option=-Werror --enable-tests --enable-benchmarks \
-v2 # -v2 provides useful information for debugging
cabal build
cabal haddock # see https://github.com/haskell/cabal/issues/2198
cabal test unit-tests --show-details=streaming --test-option=--hide-successes
cabal test integration-tests --show-details=streaming --test-option=--hide-successes
cabal check
./dist/setup/setup sdist
install_from_tarball
# Check what we got
$HOME/.cabal/bin/cabal --version
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment