forked from LambdaHack/LambdaHack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
142 lines (119 loc) · 5.49 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# NB: don't set `language: haskell` here
# See also https://github.com/hvr/multi-ghc-travis for more information
# The following lines enable several GHC versions and/or HP versions
# to be tested; often it's enough to test only against the last
# release of a major GHC version. Setting HPVER implictly sets
# GHCVER. Omit lines with versions you don't need/want testing for.
env:
# - HPVER=7.6.3.gtk
- HPVER=7.6.3.vty
- HPVER=7.8.3.gtk
- HPVER=7.8.3.vty
- HPVER=2013.2.0.0
- HPVER=2012.4.0.0
# - HPVER=2014.2.0.0
# Note: the distinction between `before_install` and `install` is not
# important.
before_install:
- case "$HPVER" in
"") ;;
"7.6.3.gtk")
export GHCVER=7.6.3 ;
export GTKVTY=gtk ;;
"7.6.3.vty")
export GHCVER=7.6.3 ;
export GTKVTY=vty ;;
"7.8.3.gtk")
export GHCVER=7.8.3 ;
export GTKVTY=gtk ;;
"7.8.3.vty")
export GHCVER=7.8.3 ;
export GTKVTY=vty ;;
"2013.2.0.0")
export GHCVER=7.6.3 ;
export GTKVTY=gtk ;
echo "constraints:async==2.0.1.4,attoparsec==0.10.4.0,case-insensitive==1.0.0.1,cgi==3001.1.7.5,fgl==5.4.2.4,GLUT==2.4.0.0,GLURaw==1.3.0.0,haskell-src==1.0.1.5,html==1.0.1.2,HTTP==4000.2.8,HUnit==1.2.5.2,mtl==2.1.2,network==2.4.1.2,OpenGL==2.8.0.0,OpenGLRaw==1.3.0.0,parallel==3.2.0.3,parsec==3.1.3,QuickCheck==2.6,random==1.0.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.2,split==0.2.2,stm==2.4.2,syb==0.4.0,text==0.11.3.1,transformers==0.3.0.0,unordered-containers==0.2.3.0,vector==0.10.0.1,xhtml==3000.2.1,zlib==0.5.4.1" > cabal.config ;;
"2012.4.0.0")
export GHCVER=7.6.2 ;
export GTKVTY=gtk ;
echo "constraints:async==2.0.1.3,cgi==3001.1.7.4,fgl==5.4.2.4,GLUT==2.1.2.1,haskell-src==1.0.1.5,html==1.0.1.2,HTTP==4000.2.5,HUnit==1.2.5.1,mtl==2.1.2,network==2.3.1.0,OpenGL==2.2.3.1,parallel==3.2.0.3,parsec==3.1.3,QuickCheck==2.5.1.1,random==1.0.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.2,split==0.2.1.1,stm==2.4,syb==0.3.7,text==0.11.3.1,transformers==0.3.0.0,vector==0.10.0.1,xhtml==3000.2.1,zlib==0.5.4.0" > cabal.config ;;
"2012.2.0.0")
export GHCVER=7.4.1 ;
echo "constraints:cgi==3001.1.7.4,fgl==5.4.2.4,GLUT==2.1.2.1,haskell-src==1.0.1.5,html==1.0.1.2,HTTP==4000.2.3,HUnit==1.2.4.2,mtl==2.1.1,network==2.3.0.13,OpenGL==2.2.3.1,parallel==3.2.0.2,parsec==3.1.2,QuickCheck==2.4.2,random==1.0.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.1,stm==2.3,syb==0.3.6.1,text==0.11.2.0,transformers==0.3.0.0,xhtml==3000.2.1,zlib==0.5.3.3" > cabal.config ;;
"2011.4.0.0")
export GHCVER=7.0.4 ;
echo "constraints:cgi==3001.1.7.4,fgl==5.4.2.4,GLUT==2.1.2.1,haskell-src==1.0.1.4,html==1.0.1.2,HUnit==1.2.4.2,network==2.3.0.5,OpenGL==2.2.3.0,parallel==3.1.0.1,parsec==3.1.1,QuickCheck==2.4.1.1,regex-base==0.93.2,regex-compat==0.95.1,regex-posix==0.95.1,stm==2.2.0.1,syb==0.3.3,xhtml==3000.2.0.4,zlib==0.5.3.1,HTTP==4000.1.2,deepseq==1.1.0.2" > cabal.config ;;
*)
export GHCVER=unknown ;
echo "unknown/invalid Haskell Platform requested" ;
exit 1 ;;
esac
- travis_retry sudo add-apt-repository -y ppa:hvr/ghc
- travis_retry sudo apt-get update
- travis_retry sudo apt-get install cabal-install-1.18 ghc-$GHCVER # see note about happy/alex
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.18/bin:$PATH
install:
- cabal-1.18 update
- |
if [ ${GHCVER%.*} = "7.6" ]; then
travis_retry sudo apt-get install happy alex;
if [ $GTKVTY = "vty" ]; then
cabal-1.18 install -j2 Cabal-1.18.0;
fi;
else
travis_retry sudo apt-get install happy-1.19.4 alex-3.1.3;
export PATH=/opt/alex/3.1.3/bin:/opt/happy/1.19.4/bin:$PATH;
fi
# mine (7.6 struggles with -O2):
- |
if [ $GTKVTY = "gtk" ]; then
cabal-1.18 install -j2 gtk2hs-buildtools;
if [ ${GHCVER%.*} = "7.6" ]; then
cabal-1.18 install -j2 -f-release -O1 --only-dependencies;
cabal-1.18 configure -f-release -O1 --enable-tests;
else
cabal-1.18 install -j2 -f-release -O2 --only-dependencies;
cabal-1.18 configure -f-release -O2 --enable-tests;
fi;
cabal-1.18 build -j2;
cabal-1.18 test;
else
if [ ${GHCVER%.*} = "7.6" ]; then
cabal-1.18 install -fvty -j2 -frelease -O1 --only-dependencies;
cabal-1.18 configure -fvty -frelease -O1 --enable-tests;
else
cabal-1.18 install -fvty -j2 -frelease -O2 --only-dependencies;
cabal-1.18 configure -fvty -frelease -O2 --enable-tests;
fi;
cabal-1.18 build -j2;
cabal-1.18 test;
fi
# - cabal-1.18 install -j2 -O2 -frelease -fcurses --only-dependencies
# - cabal-1.18 configure -f-release -fcurses
# - cabal-1.18 build -j2
# Here starts the actual work to be performed for the package under
# test; any command which exits with a non-zero exit code causes the
# build to fail.
script:
# tests that a source-distribution is correct; ignore -O2 warning
- cabal-1.18 check || true
# tests that a source-distribution can be generated; ignore -O2 warning
- cabal-1.18 sdist || true
# check that the generated source-distribution can be built & installed
- export SRC_TGZ=$(cabal-1.18 info . | awk '{print $2 ".tar.gz";exit}');
cd dist/;
if [ -f "$SRC_TGZ" ]; then
if [ $GTKVTY = "gtk" ]; then
cabal-1.18 install -j2 "$SRC_TGZ";
else
cabal-1.18 install -fvty -j2 "$SRC_TGZ";
fi;
else
echo "expected '$SRC_TGZ' not found";
exit 1;
fi;
cd ..
# mine:
- touch /tmp/stdtest.log;
(make test-travis || (tail -n 200 /tmp/stdtest.log ; exit 77));
# EOF