Move ShortText to Distribution.Utils.ShortText to avoid cycles
[cabal.git] / .travis.yml
blob4c1076dfb77fe825d3244ccc8cb2345b8420d73f
1 # NB: don't set `language: haskell` here
2 # We specify language: c, so it doesn't default to e.g. ruby
3 language: c
5 sudo: false
7 # Remember to add release branches
8 # we whitelist branches, as we don't really need to build dev-branches.
9 branches:
10   only:
11     - master
12     - "1.24"
13     - "1.22"
14     - "1.20"
15     - "1.18"
17 # The following enables several GHC versions to be tested; often it's enough to
18 # test only against the last release in a major GHC version. Feel free to omit
19 # lines listings versions you don't need/want testing for.
20 matrix:
21   include:
22    - env: GHCVER=none SCRIPT=meta
23      os: linux
24    # These don't have -dyn/-prof whitelisted yet, so we have to
25    # do the old-style installation
26    - env: GHCVER=7.4.2 SCRIPT=script CABAL_LIB_ONLY=YES
27      os: linux
28      sudo: required
29    - env: GHCVER=7.6.3 SCRIPT=script
30      os: linux
31      sudo: required
32    - env: GHCVER=7.8.4 SCRIPT=script
33      os: linux
34      sudo: required
35    # Ugh, we'd like to drop 'sudo: required' and use the
36    # apt plugin for the next two
37    # but the GCE instance we get has more memory, which makes
38    # a big difference
39    - env: GHCVER=7.10.3 SCRIPT=script
40      os: linux
41      sudo: required
42    - env: GHCVER=8.0.1 SCRIPT=script DEPLOY_DOCS=YES
43      sudo: required
44      os: linux
45    - env: GHCVER=8.0.1 SCRIPT=bootstrap
46      sudo: required
47      os: linux
48    # It's not worth the trouble to make older GHC work with clang's cpp
49    # TEST_OLDER is not implemented on OSX
50    #
51    # Also we might want to specify OSX version
52    # https://docs.travis-ci.com/user/osx-ci-environment/#OS-X-Version
53    - env: GHCVER=7.8.4 SCRIPT=script
54      os: osx
55    - env: GHCVER=7.10.3 SCRIPT=script
56      os: osx
57    - env: GHCVER=8.0.1 SCRIPT=script
58      os: osx
59    - env: GHCVER=8.0.1 SCRIPT=bootstrap
60      os: osx
61   allow_failures:
62    - env: GHCVER=head
63      sudo: required
65  # TODO add PARSEC_BUNDLED=YES when it's so
66  # It seems pointless to run head if we're going to ignore the results.
67  #- GHCVER=head
69 # Note: the distinction between `before_install` and `install` is not important.
70 before_install:
71  - export PATH=/opt/ghc/$GHCVER/bin:$PATH
72  - export PATH=$HOME/.ghc-install/$GHCVER/bin:$PATH
73  - export PATH=$HOME/bin:$PATH
74  - export PATH=$HOME/.cabal/bin:$PATH
75  - export PATH=/opt/cabal/1.24/bin:$PATH
76  - export PATH=/opt/happy/1.19.5/bin:$PATH
77  - ./travis-install.sh
79  # Set up deployment to the haskell/cabal-website repo.
80  # NB: these commands MUST be in .travis.yml, otherwise the secret key can be
81  # leaked! See https://github.com/travis-ci/travis.rb/issues/423.
82  # umask to get the permissions to be 400.
83  - if [ "x$TRAVIS_REPO_SLUG" = "xhaskell/cabal" -a "x$TRAVIS_PULL_REQUEST" = "xfalse" -a "x$TRAVIS_BRANCH" = "xmaster" -a "x$DEPLOY_DOCS" = "xYES"  ]; then (umask 377 && openssl aes-256-cbc -K $encrypted_edaf6551664d_key -iv $encrypted_edaf6551664d_iv -in id_rsa_cabal_website.aes256.enc -out ~/.ssh/id_rsa -d); fi
85 install:
86  # We intentionally do not install anything before trying to build Cabal because
87  # it should build with each supported GHC version out-of-the-box.
89 # Here starts the actual work to be performed for the package under test; any
90 # command which exits with a non-zero exit code causes the build to fail. Using
91 # ./dist/setup/setup here instead of cabal-install to avoid breakage when the
92 # build config format changed.
93 script:
94  - ./travis-${SCRIPT}.sh
96 cache:
97  directories:
98  - $HOME/.cabal/packages
99  - $HOME/.cabal/store
100  - $HOME/.cabal/bin
102 # We remove the index because it churns quite a bit and we don't want
103 # to pay the cost of repeatedly caching it even though we don't care
104 # about most changing packages.
105 before_cache:
106  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
107  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index*
108  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json
110 # Deploy Haddocks to the haskell/cabal-website repo.
111 after_success:
112  - ./travis-deploy.sh
114 notifications:
115   irc:
116     channels:
117       - "chat.freenode.net##haskell-cabal"
118   slack: haskell-cabal:sCq6GLfy9N8MJrInosg871n4