on master help sign in
Combo Stack and Cabal builds in Travis
commit0b1671fd295e86bb0d887e61386c80deca7235a6 authorMichael Snoyman <michael@snoyman.com> dateMon 7 Dec 2015, 10:42 (11 years ago) parent1e1c92a
2 files changed+76−32
.travis-setup.sh+13 .travis.yml+63−32
.travis-setup.sh+13
@@ -2,6 +2,19 @@
22
33set -eux
44
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+
518mkdir -p $HOME/.cabal
619cat > $HOME/.cabal/config <<EOF
720remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/
.travis.yml+63−32
@@ -4,54 +4,85 @@ sudo: false
44# Choose a lightweight base image; we provide our own build tools.
55language: c
66
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−
147matrix:
158 include:
169 - 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]}}
1911
2012 - 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]}}
2314
2415 - 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]}}
2717
2818 - 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]}}
3135
32− - env: CABALVER=head GHCVER=7.10.2 BUILD=cabal
33− compiler: ": #GHC head"
34− addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
36+ - env: ARGS= BUILD=stack
37+ os: osx
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
3547
3648 allow_failures:
37− - env: GHCVER=head CABALVER=head
49+ - env: CABALVER=head GHCVER=head BUILD=cabal
3850
3951before_install:
40−- mkdir -p $HOME/.local/bin
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−
52+# Set up path and additional build tools
4553- ./.travis-setup.sh
46−- cabal --version
47−- ghc --version
54+- case "$BUILD" in
55+ stack)
56+ export PATH=$HOME/.local/bin:$HOME/.cabal/bin:$PATH;
57+ stack --version;;
58+ cabal)
59+ export PATH=$HOME/.local/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH;
60+ ghc --version;
61+ cabal --version;;
62+ esac
4863
4964install:
50−- travis_retry cabal update
51−- cabal unpack wai-logger
52−- mv wai-logger-* wai-logger
53−- cabal install hspec doctest HTTP temporary
54−- cabal-meta install --force-reinstalls
65+- case "$BUILD" in
66+ stack)
67+ stack $ARGS setup --no-terminal;;
68+ cabal)
69+ travis_retry cabal update;
70+ cabal unpack wai-logger;
71+ mv wai-logger-* wai-logger;
72+ cabal install hspec doctest HTTP temporary;
73+ cabal-meta install --force-reinstalls;;
74+ esac
5575
5676script:
57−- mega-sdist --test
77+- case "$BUILD" in
78+ stack)
79+ stack $ARGS --no-terminal test --haddock;;
80+ cabal)
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