on master help sign in
Combo Stack and Cabal builds in Travis
0b1671fMichael Snoyman
.travis-setup.sh+13
@@ -2,6 +2,19 @@
2
2
3set -eux
3set -eux
4
4
5+# For simplicity, installing cabal-meta and Stack for both the Cabal and Stack
6+# build plans, even though they're never both necessary.
7+
8+mkdir -p ~/.local/bin
9+if [ `uname` = "Darwin" ]
10+then
11+ curl -L https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
12+ brew install fcgi
13+else
14+ curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
15+ curl -L http://download.fpcomplete.com/michael/cabal-meta.tar.gz | tar xz -C $HOME/.local/bin
16+fi
17+
5mkdir -p $HOME/.cabal
18mkdir -p $HOME/.cabal
6cat > $HOME/.cabal/config <<EOF
19cat > $HOME/.cabal/config <<EOF
7remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/
20remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/
.travis.yml+63−32
@@ -4,54 +4,85 @@ sudo: false
4# Choose a lightweight base image; we provide our own build tools.
4# Choose a lightweight base image; we provide our own build tools.
5language: c
5language: c
6
6
7−# GHC depends on GMP. You can add other dependencies here as well.
8−addons:
9− apt:
10− packages:
11− - libgmp-dev
12− - libfcgi-dev
13−
14matrix:
7matrix:
15 include:
8 include:
16 - env: CABALVER=1.18 GHCVER=7.6.3 BUILD=cabal
9 - env: CABALVER=1.18 GHCVER=7.6.3 BUILD=cabal
17− compiler: ": #GHC 7.6.3"
18− addons: {apt: {packages: [cabal-install-1.18,ghc-7.6.3], sources: [hvr-ghc]}}
10+ addons: {apt: {packages: [libfcgi-dev,cabal-install-1.18,ghc-7.6.3], sources: [hvr-ghc]}}
19
11
20 - env: CABALVER=1.18 GHCVER=7.8.4 BUILD=cabal
12 - env: CABALVER=1.18 GHCVER=7.8.4 BUILD=cabal
21− compiler: ": #GHC 7.8.4"
22− addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
13+ addons: {apt: {packages: [libfcgi-dev,cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
23
14
24 - env: CABALVER=1.22 GHCVER=7.10.1 BUILD=cabal
15 - env: CABALVER=1.22 GHCVER=7.10.1 BUILD=cabal
25− compiler: ": #GHC 7.10.1"
26− addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1], sources: [hvr-ghc]}}
16+ addons: {apt: {packages: [libfcgi-dev,cabal-install-1.22,ghc-7.10.1], sources: [hvr-ghc]}}
27
17
28 - env: CABALVER=1.22 GHCVER=7.10.2 BUILD=cabal
18 - env: CABALVER=1.22 GHCVER=7.10.2 BUILD=cabal
29− compiler: ": #GHC 7.10.2"
30− addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2], sources: [hvr-ghc]}}
19+ addons: {apt: {packages: [libfcgi-dev,cabal-install-1.22,ghc-7.10.2], sources: [hvr-ghc]}}
20+
21+ - env: CABALVER=head GHCVER=head BUILD=cabal
22+ addons: {apt: {packages: [libfcgi-dev,cabal-install-head,ghc-head], sources: [hvr-ghc]}}
23+
24+ - env: ARGS= BUILD=stack
25+ addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}}
26+
27+ - env: ARGS="--resolver lts-3" BUILD=stack
28+ addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}}
29+
30+ - env: ARGS="--resolver lts" BUILD=stack
31+ addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}}
32+
33+ - env: ARGS="--resolver nightly" BUILD=stack
34+ addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}}
31
35
32− - env: CABALVER=head GHCVER=7.10.2 BUILD=cabal
36+ - env: ARGS= BUILD=stack
33− compiler: ": #GHC head"
37+ os: osx
34− addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
38+
39+ - env: ARGS="--resolver lts-3" BUILD=stack
40+ os: osx
41+
42+ - env: ARGS="--resolver lts" BUILD=stack
43+ os: osx
44+
45+ - env: ARGS="--resolver nightly" BUILD=stack
46+ os: osx
35
47
36 allow_failures:
48 allow_failures:
37− - env: GHCVER=head CABALVER=head
49+ - env: CABALVER=head GHCVER=head BUILD=cabal
38
50
39before_install:
51before_install:
40−- mkdir -p $HOME/.local/bin
52+# Set up path and additional build tools
41−- export PATH=$HOME/.local/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH
42−- travis_retry curl -L http://download.fpcomplete.com/michael/cabal-meta.tar.gz | tar xz -C $HOME/.local/bin
43−- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
44−
45- ./.travis-setup.sh
53- ./.travis-setup.sh
54+- case "$BUILD" in
55+ stack)
56+ export PATH=$HOME/.local/bin:$HOME/.cabal/bin:$PATH;
46−- cabal --version
57+ stack --version;;
58+ cabal)
59+ export PATH=$HOME/.local/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH;
47−- ghc --version
60+ ghc --version;
61+ cabal --version;;
62+ esac
48
63
49install:
64install:
65+- case "$BUILD" in
66+ stack)
67+ stack $ARGS setup --no-terminal;;
68+ cabal)
50−- travis_retry cabal update
69+ travis_retry cabal update;
51−- cabal unpack wai-logger
70+ cabal unpack wai-logger;
52−- mv wai-logger-* wai-logger
71+ mv wai-logger-* wai-logger;
53−- cabal install hspec doctest HTTP temporary
72+ cabal install hspec doctest HTTP temporary;
54−- cabal-meta install --force-reinstalls
73+ cabal-meta install --force-reinstalls;;
74+ esac
55
75
56script:
76script:
77+- case "$BUILD" in
78+ stack)
79+ stack $ARGS --no-terminal test --haddock;;
80+ cabal)
57−- mega-sdist --test
81+ mega-sdist --test;;
82+ esac
83+
84+# Caching so the next build will be fast too.
85+cache:
86+ directories:
87+ - $HOME/.stack
88+ - $HOME/.cabal/packages