@@ -4,7 +4,7 @@
44#
55# For more information, see https://github.com/haskell-CI/haskell-ci
66#
7−# version: 0.3.20190521
7+# version: 0.5.20190908
88#
99language: c
1010dist: xenial
@@ -29,27 +29,31 @@ before_cache:
2929 - rm -rfv $CABALHOME/packages/head.hackage
3030matrix:
3131 include:
32+ - compiler: ghc-8.8.1
33+ addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
3234 - 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"]}}
3436 - 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"]}}
3638 - 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"]}}
3840 - 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"]}}
4042 - 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"]}}
4244 - 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"]}}
4446before_install:
4547 - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
48+ - WITHCOMPILER="-w $HC"
49+ - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//')
4650 - HCPKG="$HC-pkg"
4751 - unset CC
4852 - CABAL=/opt/ghc/bin/cabal
4953 - CABALHOME=$HOME/.cabal
5054 - export PATH="$CABALHOME/bin:$PATH"
5155 - 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))')"
5357 - echo $HCNUMVER
5458 - CABAL="$CABAL -vnormal+nowrap+markoutput"
5559 - set -o pipefail
@@ -76,11 +80,12 @@ install:
7680 - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
7781 - TEST=--enable-tests
7882 - BENCH=--enable-benchmarks
79− - GHCHEAD=${GHCHEAD-false}
83+ - HEADHACKAGE=false
8084 - rm -f $CABALHOME/config
8185 - |
8286 echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
8387 echo "remote-build-reporting: anonymous" >> $CABALHOME/config
88+ echo "write-ghc-environment-files: always" >> $CABALHOME/config
8489 echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
8590 echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
8691 echo "world-file: $CABALHOME/world" >> $CABALHOME/config
@@ -93,6 +98,9 @@ install:
9398 echo " prefix: $CABALHOME" >> $CABALHOME/config
9499 echo "repository hackage.haskell.org" >> $CABALHOME/config
95100 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
96104 - cat $CABALHOME/config
97105 - rm -fv cabal.project cabal.project.local cabal.project.freeze
98106 - travis_retry ${CABAL} v2-update -v
@@ -100,13 +108,12 @@ install:
100108 - rm -rf cabal.project cabal.project.local cabal.project.freeze
101109 - touch cabal.project
102110 - |
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
108116 - |
109− echo "write-ghc-environment-files: always" >> cabal.project
110117 - "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"
111118 - cat cabal.project || true
112119 - cat cabal.project.local || true
@@ -115,11 +122,11 @@ install:
115122 - if [ -f "servant-swagger-ui-example/configure.ac" ]; then (cd "servant-swagger-ui-example" && autoreconf -i); fi
116123 - if [ -f "servant-swagger-ui-jensoleg/configure.ac" ]; then (cd "servant-swagger-ui-jensoleg" && autoreconf -i); fi
117124 - 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
119126 - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
120127 - 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
123130script:
124131 - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
125132 # Packaging...
@@ -127,46 +134,51 @@ script:
127134 # Unpacking...
128135 - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
129136 - 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.]*')"
131144 # Generate cabal.project
132145 - rm -rf cabal.project cabal.project.local cabal.project.freeze
133146 - touch cabal.project
134147 - |
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
140153 - |
141− echo "write-ghc-environment-files: always" >> cabal.project
142154 - "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"
143155 - cat cabal.project || true
144156 - cat cabal.project.local || true
145157 # Building...
146158 # 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
148160 # Building with tests and benchmarks...
149161 # 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
151163 # 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)
157169 # 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
159171 # Building without installed constraints for packages in global-db...
160172 - 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
162174 # Constraint sets
163175 - rm -rf cabal.project.local
164176 # 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
166178 # 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
168180 # 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
170182
171183# REGENDATA ["--output",".travis.yml","--config=cabal.haskell-ci","cabal.project"]
172184# EOF