Reorder os and env
[hadrian.git] / .travis.yml
1 sudo: false
2
3 matrix:
4     include:
5         - os: linux
6           env: CABALVER=1.22 GHCVER=7.10.3
7         - os: osx
8
9 addons:
10     apt:
11         packages:
12             - ghc-7.10.3
13             - alex-3.1.4
14             - happy-1.19.5
15             - cabal-install-1.22
16             - zlib1g-dev
17         sources: hvr-ghc
18
19 before_install:
20     - if [ $TRAVIS_OS_NAME == osx ]; then brew update; fi
21     - if [ $TRAVIS_OS_NAME == osx ]; then brew install ghc cabal-install; fi
22     - if [ $TRAVIS_OS_NAME == osx ]; then cabal install alex happy; fi
23     - if [ $TRAVIS_OS_NAME == linux ]; then PATH="/opt/ghc/$GHCVER/bin:$PATH"; fi
24     - if [ $TRAVIS_OS_NAME == linux ]; then PATH="/opt/cabal/$CABALVER/bin:$PATH"; fi
25     - PATH="$HOME/.cabal/bin:$PATH"
26     - export PATH
27
28     - env
29     - ghc --version
30     - cabal --version
31     - alex --version
32     - happy --version
33     - cabal update
34
35 install:
36
37     - travis_retry git clone git://git.haskell.org/ghc --recurse-submodules
38
39     # Travis clones the project into ".", but we need it as a child directory
40     # of "ghc/". For this reason, we - rather hackily - move the GHC-Shake
41     # ".git"  directory into the appropriate location, and perform a hard reset
42     # in order to regenerate the GHC-Shake files.
43     - mkdir ghc/shake-build
44     - mv .git ghc/shake-build
45     - ( cd ghc/shake-build && git reset --hard HEAD )
46
47     - ( cd ghc/shake-build && cabal install --only-dependencies )
48
49     - ( cd ghc && ./boot )
50     - ( cd ghc && ./configure )
51
52 script:
53     - ./ghc/shake-build/build.sh -j --no-progress
54
55 cache:
56     directories:
57         - $HOME/.cabal