Enhance Travis-CI job to test GHC>=7.0
authorHerbert Valerio Riedel <hvr@gnu.org>
Mon, 12 May 2014 09:10:50 +0000 (11:10 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Mon, 12 May 2014 09:10:50 +0000 (11:10 +0200)
This copies over the Travis-CI file from the 2.0 branch

.travis.yml

index 999bd37..696a40e 100644 (file)
@@ -1 +1,56 @@
-language: haskell
+# NB: don't set `language: haskell` here
+
+# See also https://github.com/hvr/multi-ghc-travis for more information
+env:
+ - GHCVER=7.0.4 CABALVER=1.16
+ # we have to use CABALVER=1.16 for GHC<7.6 as well, as there's
+ # no package for earlier cabal versions in the PPA
+ - GHCVER=7.4.2 CABALVER=1.16
+ - GHCVER=7.6.3 CABALVER=1.16
+ - GHCVER=7.8.2 CABALVER=1.18
+ # NOTE: we can't use Cabal 1.20 yet due to
+ #  https://github.com/haskell/cabal/issues/1806
+ - GHCVER=head  CABALVER=1.20
+
+matrix:
+  allow_failures:
+   - env: GHCVER=head  CABALVER=1.20
+
+# Note: the distinction between `before_install` and `install` is not
+#       important.
+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-$CABALVER ghc-$GHCVER
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
+ - cabal --version
+
+install:
+ - travis_retry cabal update
+ - cabal install --only-dependencies
+
+# Here starts the actual work to be performed for the package under
+# test; any command which exits with a non-zero exit code causes the
+# build to fail.
+script:
+ # -v2 provides useful information for debugging
+ - cabal configure -v2
+
+ # this builds all libraries and executables
+ # (including tests/benchmarks)
+ - cabal build
+
+ # tests that a source-distribution can be generated
+ - cabal sdist
+
+ # check that the generated source-distribution can be built & installed
+ - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
+   cd dist/;
+   if [ -f "$SRC_TGZ" ]; then
+      cabal install --force-reinstalls "$SRC_TGZ";
+   else
+      echo "expected '$SRC_TGZ' not found";
+      exit 1;
+   fi
+
+# EOF