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