git.iko.soy/typeable/servant
on v0.16.0.1 help sign in
typeable/servant/.travis.yml
244 lines 17 kB history raw
1# This Travis job script has been generated by a script via
2#
3# haskell-ci '--config=cabal.haskell-ci' '--output=.travis.yml' 'cabal.project'
4#
5# For more information, see https://github.com/haskell-CI/haskell-ci
6#
7# version: 0.3.20190413
8#
9language: c
10dist: xenial
11git:
12 # whether to recursively clone submodules
13 submodules: false
14branches:
15 only:
16 - master
17 - release-0.16
18cache:
19 directories:
20 - $HOME/.cabal/packages
21 - $HOME/.cabal/store
22before_cache:
23 - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
24 # remove files that are regenerated by 'cabal update'
25 - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.*
26 - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json
27 - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache
28 - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
29 - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
30 - rm -rfv $CABALHOME/packages/head.hackage
31matrix:
32 include:
33 - compiler: ghc-8.6.4
34 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.4","cabal-install-2.4"]}}
35 - compiler: ghc-8.4.4
36 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}}
37 - compiler: ghc-8.2.2
38 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}}
39 - compiler: ghc-8.0.2
40 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}}
41before_install:
42 - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
43 - HCPKG="$HC-pkg"
44 - unset CC
45 - CABAL=/opt/ghc/bin/cabal
46 - CABALHOME=$HOME/.cabal
47 - export PATH="$CABALHOME/bin:$PATH"
48 - TOP=$(pwd)
49 - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
50 - echo $HCNUMVER
51 - CABAL="$CABAL -vnormal+nowrap+markoutput"
52 - set -o pipefail
53 - |
54 echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >> .colorful.awk
55 echo 'BEGIN { state = "output"; }' >> .colorful.awk
56 echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >> .colorful.awk
57 echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >> .colorful.awk
58 echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk
59 echo ' if (state == "cabal") {' >> .colorful.awk
60 echo ' print blue($0)' >> .colorful.awk
61 echo ' } else {' >> .colorful.awk
62 echo ' print $0' >> .colorful.awk
63 echo ' }' >> .colorful.awk
64 echo '}' >> .colorful.awk
65 - cat .colorful.awk
66 - |
67 color_cabal_output () {
68 awk -f $TOP/.colorful.awk
69 }
70 - echo text | color_cabal_output
71install:
72 - ${CABAL} --version
73 - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
74 - TEST=--enable-tests
75 - BENCH=--enable-benchmarks
76 - GHCHEAD=${GHCHEAD-false}
77 - rm -f $CABALHOME/config
78 - |
79 echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
80 echo "remote-build-reporting: anonymous" >> $CABALHOME/config
81 echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
82 echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
83 echo "world-file: $CABALHOME/world" >> $CABALHOME/config
84 echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
85 echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
86 echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
87 echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
88 echo "install-dirs user" >> $CABALHOME/config
89 echo " prefix: $CABALHOME" >> $CABALHOME/config
90 echo "repository hackage.haskell.org" >> $CABALHOME/config
91 echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
92 - |
93 echo "program-default-options" >> $CABALHOME/config
94 echo " ghc-options: -j2" >> $CABALHOME/config
95 - cat $CABALHOME/config
96 - rm -fv cabal.project cabal.project.local cabal.project.freeze
97 - travis_retry ${CABAL} v2-update -v
98 # Generate cabal.project
99 - rm -rf cabal.project cabal.project.local cabal.project.freeze
100 - touch cabal.project
101 - |
102 echo 'packages: "servant"' >> cabal.project
103 echo 'packages: "servant-client"' >> cabal.project
104 echo 'packages: "servant-client-core"' >> cabal.project
105 echo 'packages: "servant-http-streams"' >> cabal.project
106 echo 'packages: "servant-docs"' >> cabal.project
107 echo 'packages: "servant-foreign"' >> cabal.project
108 echo 'packages: "servant-server"' >> cabal.project
109 echo 'packages: "doc/tutorial"' >> cabal.project
110 echo 'packages: "servant-machines"' >> cabal.project
111 echo 'packages: "servant-conduit"' >> cabal.project
112 echo 'packages: "servant-pipes"' >> cabal.project
113 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/basic-auth"' >> cabal.project ; fi
114 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/curl-mock"' >> cabal.project ; fi
115 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/basic-streaming"' >> cabal.project ; fi
116 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/db-postgres-pool"' >> cabal.project ; fi
117 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/db-sqlite-simple"' >> cabal.project ; fi
118 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/file-upload"' >> cabal.project ; fi
119 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/generic"' >> cabal.project ; fi
120 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/https"' >> cabal.project ; fi
121 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/pagination"' >> cabal.project ; fi
122 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/testing"' >> cabal.project ; fi
123 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/structuring-apis"' >> cabal.project ; fi
124 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/using-custom-monad"' >> cabal.project ; fi
125 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "doc/cookbook/using-free-client"' >> cabal.project ; fi
126 - |
127 echo "constraints: foundation >=0.0.14" >> cabal.project
128 echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project
129 echo "allow-newer: servant-quickcheck:servant" >> cabal.project
130 echo "allow-newer: servant-quickcheck:servant-client" >> cabal.project
131 echo "allow-newer: servant-quickcheck:servant-server" >> cabal.project
132 echo "allow-newer: servant-quickcheck:hspec" >> cabal.project
133 echo "allow-newer: servant-quickcheck:http-client" >> cabal.project
134 echo "allow-newer: http-media" >> cabal.project
135 echo "optimization: False" >> cabal.project
136 echo "write-ghc-environment-files: always" >> cabal.project
137 - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-db-sqlite-simple|cookbook-file-upload|cookbook-generic|cookbook-https|cookbook-pagination|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
138 - cat cabal.project || true
139 - cat cabal.project.local || true
140 - if [ -f "servant/configure.ac" ]; then (cd "servant" && autoreconf -i); fi
141 - if [ -f "servant-client/configure.ac" ]; then (cd "servant-client" && autoreconf -i); fi
142 - if [ -f "servant-client-core/configure.ac" ]; then (cd "servant-client-core" && autoreconf -i); fi
143 - if [ -f "servant-http-streams/configure.ac" ]; then (cd "servant-http-streams" && autoreconf -i); fi
144 - if [ -f "servant-docs/configure.ac" ]; then (cd "servant-docs" && autoreconf -i); fi
145 - if [ -f "servant-foreign/configure.ac" ]; then (cd "servant-foreign" && autoreconf -i); fi
146 - if [ -f "servant-server/configure.ac" ]; then (cd "servant-server" && autoreconf -i); fi
147 - if [ -f "doc/tutorial/configure.ac" ]; then (cd "doc/tutorial" && autoreconf -i); fi
148 - if [ -f "servant-machines/configure.ac" ]; then (cd "servant-machines" && autoreconf -i); fi
149 - if [ -f "servant-conduit/configure.ac" ]; then (cd "servant-conduit" && autoreconf -i); fi
150 - if [ -f "servant-pipes/configure.ac" ]; then (cd "servant-pipes" && autoreconf -i); fi
151 - if [ -f "doc/cookbook/basic-auth/configure.ac" ]; then (cd "doc/cookbook/basic-auth" && autoreconf -i); fi
152 - if [ -f "doc/cookbook/curl-mock/configure.ac" ]; then (cd "doc/cookbook/curl-mock" && autoreconf -i); fi
153 - if [ -f "doc/cookbook/basic-streaming/configure.ac" ]; then (cd "doc/cookbook/basic-streaming" && autoreconf -i); fi
154 - if [ -f "doc/cookbook/db-postgres-pool/configure.ac" ]; then (cd "doc/cookbook/db-postgres-pool" && autoreconf -i); fi
155 - if [ -f "doc/cookbook/db-sqlite-simple/configure.ac" ]; then (cd "doc/cookbook/db-sqlite-simple" && autoreconf -i); fi
156 - if [ -f "doc/cookbook/file-upload/configure.ac" ]; then (cd "doc/cookbook/file-upload" && autoreconf -i); fi
157 - if [ -f "doc/cookbook/generic/configure.ac" ]; then (cd "doc/cookbook/generic" && autoreconf -i); fi
158 - if [ -f "doc/cookbook/https/configure.ac" ]; then (cd "doc/cookbook/https" && autoreconf -i); fi
159 - if [ -f "doc/cookbook/pagination/configure.ac" ]; then (cd "doc/cookbook/pagination" && autoreconf -i); fi
160 - if [ -f "doc/cookbook/testing/configure.ac" ]; then (cd "doc/cookbook/testing" && autoreconf -i); fi
161 - if [ -f "doc/cookbook/structuring-apis/configure.ac" ]; then (cd "doc/cookbook/structuring-apis" && autoreconf -i); fi
162 - if [ -f "doc/cookbook/using-custom-monad/configure.ac" ]; then (cd "doc/cookbook/using-custom-monad" && autoreconf -i); fi
163 - if [ -f "doc/cookbook/using-free-client/configure.ac" ]; then (cd "doc/cookbook/using-free-client" && autoreconf -i); fi
164 - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output
165 - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
166 - rm cabal.project.freeze
167script:
168 - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
169 # Packaging...
170 - echo 'Packaging...' && echo -en 'travis_fold:start:sdist\\r'
171 - ${CABAL} v2-sdist all | color_cabal_output
172 - echo -en 'travis_fold:end:sdist\\r'
173 # Unpacking...
174 - echo 'Unpacking...' && echo -en 'travis_fold:start:unpack\\r'
175 - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
176 - cd ${DISTDIR} || false
177 - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
178 # Generate cabal.project
179 - rm -rf cabal.project cabal.project.local cabal.project.freeze
180 - touch cabal.project
181 - |
182 echo 'packages: "servant-*/*.cabal"' >> cabal.project
183 echo 'packages: "servant-client-*/*.cabal"' >> cabal.project
184 echo 'packages: "servant-client-core-*/*.cabal"' >> cabal.project
185 echo 'packages: "servant-http-streams-*/*.cabal"' >> cabal.project
186 echo 'packages: "servant-docs-*/*.cabal"' >> cabal.project
187 echo 'packages: "servant-foreign-*/*.cabal"' >> cabal.project
188 echo 'packages: "servant-server-*/*.cabal"' >> cabal.project
189 echo 'packages: "tutorial-*/*.cabal"' >> cabal.project
190 echo 'packages: "servant-machines-*/*.cabal"' >> cabal.project
191 echo 'packages: "servant-conduit-*/*.cabal"' >> cabal.project
192 echo 'packages: "servant-pipes-*/*.cabal"' >> cabal.project
193 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-basic-auth-*/*.cabal"' >> cabal.project ; fi
194 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-curl-mock-*/*.cabal"' >> cabal.project ; fi
195 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-basic-streaming-*/*.cabal"' >> cabal.project ; fi
196 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-db-postgres-pool-*/*.cabal"' >> cabal.project ; fi
197 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-db-sqlite-simple-*/*.cabal"' >> cabal.project ; fi
198 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-file-upload-*/*.cabal"' >> cabal.project ; fi
199 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-generic-*/*.cabal"' >> cabal.project ; fi
200 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-https-*/*.cabal"' >> cabal.project ; fi
201 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-pagination-*/*.cabal"' >> cabal.project ; fi
202 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-testing-*/*.cabal"' >> cabal.project ; fi
203 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-structuring-apis-*/*.cabal"' >> cabal.project ; fi
204 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-using-custom-monad-*/*.cabal"' >> cabal.project ; fi
205 if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80604 ] ; then echo 'packages: "cookbook-using-free-client-*/*.cabal"' >> cabal.project ; fi
206 - |
207 echo "constraints: foundation >=0.0.14" >> cabal.project
208 echo "constraints: memory <0.14.12 || >0.14.12" >> cabal.project
209 echo "allow-newer: servant-quickcheck:servant" >> cabal.project
210 echo "allow-newer: servant-quickcheck:servant-client" >> cabal.project
211 echo "allow-newer: servant-quickcheck:servant-server" >> cabal.project
212 echo "allow-newer: servant-quickcheck:hspec" >> cabal.project
213 echo "allow-newer: servant-quickcheck:http-client" >> cabal.project
214 echo "allow-newer: http-media" >> cabal.project
215 echo "optimization: False" >> cabal.project
216 echo "write-ghc-environment-files: always" >> cabal.project
217 - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(cookbook-basic-auth|cookbook-basic-streaming|cookbook-curl-mock|cookbook-db-postgres-pool|cookbook-db-sqlite-simple|cookbook-file-upload|cookbook-generic|cookbook-https|cookbook-pagination|cookbook-structuring-apis|cookbook-testing|cookbook-using-custom-monad|cookbook-using-free-client|servant|servant-client|servant-client-core|servant-conduit|servant-docs|servant-foreign|servant-http-streams|servant-machines|servant-pipes|servant-server|tutorial)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
218 - cat cabal.project || true
219 - cat cabal.project.local || true
220 - echo -en 'travis_fold:end:unpack\\r'
221 # Building with tests and benchmarks...
222 - echo 'Building with tests and benchmarks...' && echo -en 'travis_fold:start:build-everything\\r'
223 # build & run tests, build benchmarks
224 - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
225 - echo -en 'travis_fold:end:build-everything\\r'
226 # Testing...
227 - ${CABAL} v2-test -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
228 # haddock...
229 - echo 'haddock...' && echo -en 'travis_fold:start:haddock\\r'
230 - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
231 - echo -en 'travis_fold:end:haddock\\r'
232 # Constraint sets
233 - rm -rf cabal.project.local
234 # Constraint set http-media-0.8
235 - echo 'Constraint set http-media-0.8' && echo -en 'travis_fold:start:constraint-sets-http-media-0.8\\r'
236 - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='http-media ==0.8.*' all | color_cabal_output
237 - echo -en 'travis_fold:end:constraint-sets-http-media-0.8\\r'
238 # Constraint set http-media-0.7
239 - echo 'Constraint set http-media-0.7' && echo -en 'travis_fold:start:constraint-sets-http-media-0.7\\r'
240 - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='http-media ==0.7.*' all | color_cabal_output
241 - echo -en 'travis_fold:end:constraint-sets-http-media-0.7\\r'
243# REGENDATA ["--config=cabal.haskell-ci","--output=.travis.yml","cabal.project"]
244# EOF