git.iko.soy/typeable/hjsonschema
on 1.4.0.0 help sign in
84 lines 3.2 kB history raw
1# Generated by: https://github.com/hvr/multi-ghc-travis
2#
3# Removed `cabal check` because I don't want a description field.
5language: c
6sudo: false
8cache:
9 directories:
10 - $HOME/.cabsnap
11 - $HOME/.cabal/packages
13before_cache:
14 - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
15 - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
17matrix:
18 include:
19 - env: CABALVER=1.18 GHCVER=7.8.4
20 compiler: ": #GHC 7.8.4"
21 addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
22 - env: CABALVER=1.22 GHCVER=7.10.2
23 compiler: ": #GHC 7.10.2"
24 addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2], sources: [hvr-ghc]}}
25 - env: CABALVER=1.24 GHCVER=8.0.1
26 compiler: ": #GHC 8.0.1"
27 addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1], sources: [hvr-ghc]}}
29before_install:
30 - unset CC
31 - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
33install:
34 - cabal --version
35 - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
36 - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
37 then
38 zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
39 $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
40 fi
41 - travis_retry cabal update -v
42 - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
43 - cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt
44 - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
46# check whether current requested install-plan matches cached package-db snapshot
47 - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
48 then
49 echo "cabal build-cache HIT";
50 rm -rfv .ghc;
51 cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
52 cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
53 else
54 echo "cabal build-cache MISS";
55 rm -rf $HOME/.cabsnap;
56 mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
57 cabal install --only-dependencies --enable-tests --enable-benchmarks;
58 fi
60# snapshot package-db on cache miss
61 - if [ ! -d $HOME/.cabsnap ];
62 then
63 echo "snapshotting package-db to build-cache";
64 mkdir $HOME/.cabsnap;
65 cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
66 cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
67 fi
69# Here starts the actual work to be performed for the package under test;
70# any command which exits with a non-zero exit code causes the build to fail.
71script:
72 - if [ -f configure.ac ]; then autoreconf -i; fi
73 - cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging
74 - cabal build # this builds all libraries and executables (including tests/benchmarks)
75 - cabal test
76 - cabal sdist # tests that a source-distribution can be generated
78# Check that the resulting source distribution can be built & installed.
79# If there are no other `.tar.gz` files in `dist`, this can be even simpler:
80# `cabal install --force-reinstalls dist/*-*.tar.gz`
81 - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
82 (cd dist && cabal install --force-reinstalls "$SRC_TGZ")
84# EOF