-
Notifications
You must be signed in to change notification settings - Fork 19
/
.travis.yml
81 lines (68 loc) · 2.19 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# language `ghc` drags in old ghc versions
# language `generic` drags in too many others deps
# language `c` is lighter weight, and is fine since we declare most of our own deps
language: c
# https://docs.travis-ci.com/user/reference/overview/#Virtualisation-Environment-vs-Operating-System
sudo: required
dist: trusty
# this will attempt to cache the contents of the specified directories between
# runs to speed up install times
cache:
directories:
- $HOME/.cabal
- $HOME/.ghc
# clean up anything we don't want to cache
# log and index files aren't worth caching
# Note: this should be safe as cabal should still do an install
# if a newer version of a dependency is available
before_cache:
- rm -f $HOME/.cabal/logs/*.log
- rm -f $HOME/.cabal/packages/00-index*
- rm -f $HOME/.cabal/packages/01-index*
- rm -f $HOME/.cabal/packages/build-reports.log
# using ghc and cabal-install from
# https://launchpad.net/~hvr/+archive/ubuntu/ghc
# llvm from
# http://apt.llvm.org
addons:
apt:
sources: &apt_sources
- hvr-ghc
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty
- llvm-toolchain-trusty-5.0
- llvm-toolchain-trusty-6.0
packages: &apt_packages
- cabal-install-2.4
compiler:
- GHC-8.6.3
- GHC-8.4.4
env:
global:
- CABAL=2.4
matrix:
- LLVM=6.0.0
- LLVM=5.0.1
# Install GHC and LLVM. We could do this via the build matrix configuration
# without requiring sudo, but this method is easier to set up a cartesean
# product of 'compiler x matrix' build configurations.
before_install:
- export GHC=${CC:4}
- unset CC
- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install ghc-${GHC} llvm-${LLVM:0:3}-dev
# put ghc and cabal on the path
- export PATH=/opt/ghc/${GHC}/bin:/opt/cabal/${CABAL}/bin:$PATH
- cabal update
# sanity check
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- cabal --version
- llc-${LLVM:0:3} --version; true
- opt-${LLVM:0:3} --version; true
# install necessary library dependencies
install:
- make setup
script:
- make clean
- make
- make war
# vim: nospell sw=4