4
4
#
5
5
# For more information, see https://github.com/haskell-CI/haskell-ci
6
6
#
7
- # version: 0.3.20190521
7
+ # version: 0.5.20190908
8
8
#
9
9
language : c
10
10
dist : xenial
@@ -29,27 +29,31 @@ before_cache:
29
29
- rm -rfv $CABALHOME/packages/head.hackage
30
30
matrix :
31
31
include :
32
+ - compiler : ghc-8.8.1
33
+ addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
32
34
- compiler : ghc-8.6.5
33
- addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4 "]}}
35
+ addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-3.0 "]}}
34
36
- compiler : ghc-8.4.4
35
- addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4 "]}}
37
+ addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-3.0 "]}}
36
38
- compiler : ghc-8.2.2
37
- addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4 "]}}
39
+ addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-3.0 "]}}
38
40
- compiler : ghc-8.0.2
39
- addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4 "]}}
41
+ addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-3.0 "]}}
40
42
- compiler : ghc-7.10.3
41
- addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-2.4 "]}}
43
+ addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-3.0 "]}}
42
44
- compiler : ghc-7.8.4
43
- addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-2.4 "]}}
45
+ addons : {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-3.0 "]}}
44
46
before_install :
45
47
- HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
48
+ - WITHCOMPILER="-w $HC"
49
+ - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//')
46
50
- HCPKG="$HC-pkg"
47
51
- unset CC
48
52
- CABAL=/opt/ghc/bin/cabal
49
53
- CABALHOME=$HOME/.cabal
50
54
- export PATH="$CABALHOME/bin:$PATH"
51
55
- TOP=$(pwd)
52
- - HCNUMVER=$(( $($ {HC} --numeric-version|sed -E 's/([0-9] +)\.([0-9] +)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
56
+ - " HCNUMVER=$($ {HC} --numeric-version|perl -ne '/^( \\ d +)\\ .( \\ d +)\\ .( \\ d+)( \\ .( \\ d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))') "
53
57
- echo $HCNUMVER
54
58
- CABAL="$CABAL -vnormal+nowrap+markoutput"
55
59
- set -o pipefail
@@ -76,11 +80,12 @@ install:
76
80
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
77
81
- TEST=--enable-tests
78
82
- BENCH=--enable-benchmarks
79
- - GHCHEAD=${GHCHEAD- false}
83
+ - HEADHACKAGE= false
80
84
- rm -f $CABALHOME/config
81
85
- |
82
86
echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
83
87
echo "remote-build-reporting: anonymous" >> $CABALHOME/config
88
+ echo "write-ghc-environment-files: always" >> $CABALHOME/config
84
89
echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
85
90
echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
86
91
echo "world-file: $CABALHOME/world" >> $CABALHOME/config
@@ -93,20 +98,22 @@ install:
93
98
echo " prefix: $CABALHOME" >> $CABALHOME/config
94
99
echo "repository hackage.haskell.org" >> $CABALHOME/config
95
100
echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
101
+ - |
102
+ echo "program-default-options" >> $CABALHOME/config
103
+ echo " ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config
96
104
- cat $CABALHOME/config
97
105
- rm -fv cabal.project cabal.project.local cabal.project.freeze
98
106
- travis_retry ${CABAL} v2-update -v
99
107
# Generate cabal.project
100
108
- rm -rf cabal.project cabal.project.local cabal.project.freeze
101
109
- touch cabal.project
102
110
- |
103
- echo ' packages: " servant-swagger-ui"' >> cabal.project
104
- echo ' packages: " servant-swagger-ui-core"' >> cabal.project
105
- echo ' packages: " servant-swagger-ui-example"' >> cabal.project
106
- echo ' packages: " servant-swagger-ui-jensoleg"' >> cabal.project
107
- echo ' packages: " servant-swagger-ui-redoc"' >> cabal.project
111
+ echo " packages: servant-swagger-ui" >> cabal.project
112
+ echo " packages: servant-swagger-ui-core" >> cabal.project
113
+ echo " packages: servant-swagger-ui-example" >> cabal.project
114
+ echo " packages: servant-swagger-ui-jensoleg" >> cabal.project
115
+ echo " packages: servant-swagger-ui-redoc" >> cabal.project
108
116
- |
109
- echo "write-ghc-environment-files: always" >> cabal.project
110
117
- " for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
111
118
- cat cabal.project || true
112
119
- cat cabal.project.local || true
@@ -115,58 +122,63 @@ install:
115
122
- if [ -f "servant-swagger-ui-example/configure.ac" ]; then (cd "servant-swagger-ui-example" && autoreconf -i); fi
116
123
- if [ -f "servant-swagger-ui-jensoleg/configure.ac" ]; then (cd "servant-swagger-ui-jensoleg" && autoreconf -i); fi
117
124
- if [ -f "servant-swagger-ui-redoc/configure.ac" ]; then (cd "servant-swagger-ui-redoc" && autoreconf -i); fi
118
- - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output
125
+ - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output
119
126
- " cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
120
127
- rm cabal.project.freeze
121
- - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all | color_cabal_output
122
- - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all | color_cabal_output
128
+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all | color_cabal_output
129
+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all | color_cabal_output
123
130
script :
124
131
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
125
132
# Packaging...
126
133
- ${CABAL} v2-sdist all | color_cabal_output
127
134
# Unpacking...
128
135
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
129
136
- cd ${DISTDIR} || false
130
- - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
137
+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \;
138
+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec rm '{}' \;
139
+ - PKGDIR_servant_swagger_ui="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-[0-9.]*')"
140
+ - PKGDIR_servant_swagger_ui_core="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-core-[0-9.]*')"
141
+ - PKGDIR_servant_swagger_ui_example="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-example-[0-9.]*')"
142
+ - PKGDIR_servant_swagger_ui_jensoleg="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-jensoleg-[0-9.]*')"
143
+ - PKGDIR_servant_swagger_ui_redoc="$(find . -maxdepth 1 -type d -regex '.*/servant-swagger-ui-redoc-[0-9.]*')"
131
144
# Generate cabal.project
132
145
- rm -rf cabal.project cabal.project.local cabal.project.freeze
133
146
- touch cabal.project
134
147
- |
135
- echo ' packages: "servant-swagger-ui-*/*.cabal"' >> cabal.project
136
- echo ' packages: "servant-swagger-ui-core-*/*.cabal"' >> cabal.project
137
- echo ' packages: "servant-swagger-ui-example-*/*.cabal"' >> cabal.project
138
- echo ' packages: "servant-swagger-ui-jensoleg-*/*.cabal"' >> cabal.project
139
- echo ' packages: "servant-swagger-ui-redoc-*/*.cabal"' >> cabal.project
148
+ echo " packages: ${PKGDIR_servant_swagger_ui}" >> cabal.project
149
+ echo " packages: ${PKGDIR_servant_swagger_ui_core}" >> cabal.project
150
+ echo " packages: ${PKGDIR_servant_swagger_ui_example}" >> cabal.project
151
+ echo " packages: ${PKGDIR_servant_swagger_ui_jensoleg}" >> cabal.project
152
+ echo " packages: ${PKGDIR_servant_swagger_ui_redoc}" >> cabal.project
140
153
- |
141
- echo "write-ghc-environment-files: always" >> cabal.project
142
154
- " for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(servant-swagger-ui|servant-swagger-ui-core|servant-swagger-ui-example|servant-swagger-ui-jensoleg|servant-swagger-ui-redoc)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
143
155
- cat cabal.project || true
144
156
- cat cabal.project.local || true
145
157
# Building...
146
158
# this builds all libraries and executables (without tests/benchmarks)
147
- - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks all | color_cabal_output
159
+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output
148
160
# Building with tests and benchmarks...
149
161
# build & run tests, build benchmarks
150
- - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
162
+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
151
163
# cabal check...
152
- - (cd servant-swagger-ui-* && ${CABAL} -vnormal check)
153
- - (cd servant-swagger-ui-core-* && ${CABAL} -vnormal check)
154
- - (cd servant-swagger-ui-example-* && ${CABAL} -vnormal check)
155
- - (cd servant-swagger-ui-jensoleg-* && ${CABAL} -vnormal check)
156
- - (cd servant-swagger-ui-redoc-* && ${CABAL} -vnormal check)
164
+ - (cd ${PKGDIR_servant_swagger_ui} && ${CABAL} -vnormal check)
165
+ - (cd ${PKGDIR_servant_swagger_ui_core} && ${CABAL} -vnormal check)
166
+ - (cd ${PKGDIR_servant_swagger_ui_example} && ${CABAL} -vnormal check)
167
+ - (cd ${PKGDIR_servant_swagger_ui_jensoleg} && ${CABAL} -vnormal check)
168
+ - (cd ${PKGDIR_servant_swagger_ui_redoc} && ${CABAL} -vnormal check)
157
169
# haddock...
158
- - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
170
+ - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output
159
171
# Building without installed constraints for packages in global-db...
160
172
- rm -f cabal.project.local
161
- - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks all | color_cabal_output
173
+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output
162
174
# Constraint sets
163
175
- rm -rf cabal.project.local
164
176
# Constraint set servant-0.14
165
- - $ {CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.14.*' all | color_cabal_output
177
+ - if [ $HCNUMVER -lt 80800 ] ; then $ {CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.14.*' all | color_cabal_output ; fi
166
178
# Constraint set servant-0.15
167
- - if [ $HCNUMVER -ge 80000 ] && [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.15.*' all | color_cabal_output ; fi
179
+ - if [ $HCNUMVER -ge 80000 ] && [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.15.*' all | color_cabal_output ; fi
168
180
# Constraint set servant-0.16
169
- - if [ $HCNUMVER -ge 80000 ] && [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' all | color_cabal_output ; fi
181
+ - if [ $HCNUMVER -ge 80000 ] && [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' all | color_cabal_output ; fi
170
182
171
183
# REGENDATA ["--output",".travis.yml","--config=cabal.haskell-ci","cabal.project"]
172
184
# EOF
0 commit comments