1
- # This file has been generated -- see https://github.com/hvr/multi-ghc-travis
2
- language : c
3
- sudo : false
1
+ sudo : true
2
+ language : haskell
3
+
4
+ git :
5
+ depth : 5
6
+
7
+ cabal : " 3.0"
4
8
5
9
cache :
6
10
directories :
7
- - $HOME/.cabsnap
8
- - $HOME/.cabal/packages
9
-
10
- before_cache :
11
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
12
- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
11
+ - " $HOME/.cabal/store"
12
+ - " $HOME/.stack"
13
+ - " $TRAVIS_BUILD_DIR/.stack-work"
13
14
14
15
matrix :
15
16
include :
16
- - env : CABALVER=1.16 GHCVER=7.4.2
17
- compiler : " : #GHC 7.4.2"
18
- addons : {apt: {packages: [cabal-install-1.16,ghc-7.4.2], sources: [hvr-ghc]}}
19
- - env : CABALVER=1.16 GHCVER=7.6.3
20
- compiler : " : #GHC 7.6.3"
21
- addons : {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}}
22
- - env : CABALVER=1.18 GHCVER=7.8.4
23
- compiler : " : #GHC 7.8.4"
24
- addons : {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
25
- - env : CABALVER=1.22 GHCVER=7.10.3
26
- compiler : " : #GHC 7.10.3"
27
- addons : {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}
28
- - env : CABALVER=1.24 GHCVER=8.0.1
29
- compiler : " : #GHC 8.0.1"
30
- addons : {apt: {packages: [cabal-install-1.24,ghc-8.0.1], sources: [hvr-ghc]}}
17
+ # Cabal
18
+ - ghc : 8.2.2
19
+ - ghc : 8.4.4
20
+ - ghc : 8.6.5
21
+ - ghc : 8.8.1
31
22
32
- before_install :
33
- - unset CC
34
- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
23
+ # stack
24
+ - ghc : 8.8.1
25
+ env : STACK_YAML="$TRAVIS_BUILD_DIR/stack.yaml"
35
26
36
27
install :
37
- - cabal --version
38
- - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
39
- - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
40
- then
41
- zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
42
- $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
43
- fi
44
- - travis_retry cabal update -v
45
- - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
46
- - if [ $GHCVER != 7.4.2 ] && [ $GHCVER != 7.6.3 ];
47
- then cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt;
48
- else cabal install --only-dependencies --enable-tests --dry -v > installplan.txt;
49
- fi
50
- - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
51
-
52
- # check whether current requested install-plan matches cached package-db snapshot
53
- - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
54
- then
55
- echo "cabal build-cache HIT";
56
- rm -rfv .ghc;
57
- cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
58
- cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
59
- else
60
- echo "cabal build-cache MISS";
61
- rm -rf $HOME/.cabsnap;
62
- mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
63
- if [ $GHCVER != 7.4.2 ] && [ $GHCVER != 7.6.3 ];
64
- then cabal install --only-dependencies --enable-tests --enable-benchmarks;
65
- else cabal install --only-dependencies --enable-tests;
66
- fi
67
- fi
28
+ - |
29
+ if [ -z "$STACK_YAML" ]; then
30
+ ghc --version
31
+ cabal --version
32
+ cabal update
33
+ cabal build --enable-tests --enable-benchmarks
34
+ else
35
+ # install stack
36
+ curl -sSL https://get.haskellstack.org/ | sh
37
+
38
+ # build project with stack
39
+ stack --version
40
+ stack build --system-ghc --test --no-run-tests --bench --no-run-benchmarks
41
+ fi
68
42
69
- # snapshot package-db on cache miss
70
- - if [ ! -d $HOME/.cabsnap ];
71
- then
72
- echo "snapshotting package-db to build-cache";
73
- mkdir $HOME/.cabsnap;
74
- cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
75
- cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
76
- fi
77
-
78
- # Here starts the actual work to be performed for the package under test;
79
- # any command which exits with a non-zero exit code causes the build to fail.
80
43
script :
81
- - if [ -f configure.ac ]; then autoreconf -i; fi
82
- # building benchmarks fails on earlier GHCs for some reason
83
- - if [ $GHCVER != 7.4.2 ] && [ $GHCVER != 7.6.3 ];
84
- then cabal configure --enable-tests --enable-benchmarks;
85
- else cabal configure --enable-tests;
86
- fi
87
- - cabal build --ghc-options=-Werror
88
- - cabal test
89
- - cabal sdist # tests that a source-distribution can be generated
90
-
91
- # Check that the resulting source distribution can be built & installed.
92
- # If there are no other `.tar.gz` files in `dist`, this can be even simpler:
93
- # `cabal install --force-reinstalls dist/*-*.tar.gz`
94
- - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
95
- (cd dist && cabal install --force-reinstalls "$SRC_TGZ")
96
-
97
- # EOF
44
+ - |
45
+ if [ -z "$STACK_YAML" ]; then
46
+ cabal test --enable-tests
47
+ else
48
+ stack test --no-terminal --system-ghc
49
+ fi
50
+
51
+ notifications :
52
+ email : false
0 commit comments