@@ -20,53 +20,53 @@ cache:
2020 - $HOME/.cabal/store
2121
2222before_cache:
23− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
23+ - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
2424 # remove files that are regenerated by 'cabal update'
25− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.*
26− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json
27− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache
28− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
29− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
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
3030
31− - rm -rfv $HOME/.cabal/packages/head.hackage
31+ - rm -rfv $CABALHOME/packages/head.hackage
3232
3333matrix:
3434 include:
3535 - compiler: "ghc-8.6.3"
36− # env: TEST=--disable-tests BENCH=--disable-benchmarks
36+ # env: FOO=bar
3737 addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.3], sources: [hvr-ghc]}}
3838 - compiler: "ghc-8.4.4"
39− # env: TEST=--disable-tests BENCH=--disable-benchmarks
39+ # env: FOO=bar
4040 addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.4.4], sources: [hvr-ghc]}}
4141 - compiler: "ghc-8.2.2"
42− # env: TEST=--disable-tests BENCH=--disable-benchmarks
42+ # env: FOO=bar
4343 addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}}
4444 - compiler: "ghc-8.0.2"
45− # env: TEST=--disable-tests BENCH=--disable-benchmarks
45+ # env: FOO=bar
4646 addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.0.2], sources: [hvr-ghc]}}
4747
4848before_install:
49− - HC=${CC}
49+ - HC=/opt/ghc/bin/${CC}
5050 - HCPKG=${HC/ghc/ghc-pkg}
5151 - unset CC
52+ - CABAL=/opt/ghc/bin/cabal
53+ - CABALHOME=$HOME/.cabal
54+ - "export PATH=\"$CABALHOME/bin:$PATH\""
5255 - ROOTDIR=$(pwd)
53− - mkdir -p $HOME/.local/bin
54− - "PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
5556 - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
5657 - echo $HCNUMVER
5758
5859install:
59− - cabal --version
60+ - ${CABAL} --version
6061 - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
61− - BENCH=${BENCH---enable-benchmarks}
62− - TEST=${TEST---enable-tests}
63− - UNCONSTRAINED=${UNCONSTRAINED-true}
62+ - TEST=--enable-tests
63+ - BENCH=--enable-benchmarks
6464 - GHCHEAD=${GHCHEAD-false}
65− - travis_retry cabal update -v
66− - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
65+ - travis_retry ${CABAL} update -v
66+ - "sed -i.bak 's/^jobs:/-- jobs:/' $CABALHOME/config"
6767 - rm -fv cabal.project cabal.project.local
68− - "sed -i.bak 's/-- ghc-options:.*/ghc-options: -j2/' ${HOME}/.cabal/config"
69− - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
68+ - "sed -i.bak 's/-- ghc-options:.*/ghc-options: -j2/' $CABALHOME/config"
69+ - grep -Ev -- '^\s*--' $CABALHOME/config | grep -Ev '^\s*$'
7070 - rm -f cabal.project
7171 - touch cabal.project
7272 - "printf 'packages: \"servant\"\\n' >> cabal.project"
@@ -92,7 +92,6 @@ install:
9292 - "if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80603 ] ; then printf 'packages: \"doc/cookbook/structuring-apis\"\\n' >> cabal.project ; fi"
9393 - "if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80603 ] ; then printf 'packages: \"doc/cookbook/using-custom-monad\"\\n' >> cabal.project ; fi"
9494 - "if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80603 ] ; then printf 'packages: \"doc/cookbook/using-free-client\"\\n' >> cabal.project ; fi"
95− - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"
9695 - "echo 'constraints: foundation >=0.0.14' >> cabal.project"
9796 - "echo 'constraints: memory <0.14.12 || >0.14.12' >> cabal.project"
9897 - "echo 'allow-newer: servant-js:base' >> cabal.project"
@@ -112,6 +111,7 @@ install:
112111 - "echo 'allow-newer: servant-quickcheck:http-client' >> cabal.project"
113112 - "echo 'reorder-goals: True' >> cabal.project"
114113 - "echo 'optimization: False' >> cabal.project "
114+ - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"
115115 - touch cabal.project.local
116116 - "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-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"
117117 - cat cabal.project || true
@@ -147,10 +147,10 @@ install:
147147# any command which exits with a non-zero exit code causes the build to fail.
148148script:
149149 # test that source-distributions can be generated
150− - echo Packaging... && echo -en 'travis_fold:start:sdist\\r'
151− - cabal new-sdist all
152− - echo -en 'travis_fold:end:sdist\\r'
153− - echo Unpacking... && echo -en 'travis_fold:start:unpack\\r'
150+ - "echo Packaging... && echo -en 'travis_fold:start:sdist\\\\r'"
151+ - ${CABAL} new-sdist all
152+ - "echo -en 'travis_fold:end:sdist\\\\r'"
153+ - "echo Unpacking... && echo -en 'travis_fold:start:unpack\\\\r'"
154154 - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
155155 - cd ${DISTDIR} || false
156156 - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
@@ -179,7 +179,6 @@ script:
179179 - "if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80603 ] ; then printf 'packages: \"cookbook-structuring-apis-*/*.cabal\"\\n' >> cabal.project ; fi"
180180 - "if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80603 ] ; then printf 'packages: \"cookbook-using-custom-monad-*/*.cabal\"\\n' >> cabal.project ; fi"
181181 - "if [ $HCNUMVER -eq 80404 ] || [ $HCNUMVER -eq 80603 ] ; then printf 'packages: \"cookbook-using-free-client-*/*.cabal\"\\n' >> cabal.project ; fi"
182− - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"
183182 - "echo 'constraints: foundation >=0.0.14' >> cabal.project"
184183 - "echo 'constraints: memory <0.14.12 || >0.14.12' >> cabal.project"
185184 - "echo 'allow-newer: servant-js:base' >> cabal.project"
@@ -199,22 +198,23 @@ script:
199198 - "echo 'allow-newer: servant-quickcheck:http-client' >> cabal.project"
200199 - "echo 'reorder-goals: True' >> cabal.project"
201200 - "echo 'optimization: False' >> cabal.project "
201+ - "printf 'write-ghc-environment-files: always\\n' >> cabal.project"
202202 - touch cabal.project.local
203203 - "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-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"
204204 - cat cabal.project || true
205205 - cat cabal.project.local || true
206− - echo -en 'travis_fold:end:unpack\\r'
206+ - "echo -en 'travis_fold:end:unpack\\\\r'"
207207
208− - echo Building with tests and benchmarks... && echo -en 'travis_fold:start:build-everything\\r'
208+ - "echo Building with tests and benchmarks... && echo -en 'travis_fold:start:build-everything\\\\r'"
209209 # build & run tests, build benchmarks
210− - cabal new-build -w ${HC} ${TEST} ${BENCH} all
211− - echo -en 'travis_fold:end:build-everything\\r'
212− - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi
210+ - ${CABAL} new-build -w ${HC} ${TEST} ${BENCH} all
211+ - "echo -en 'travis_fold:end:build-everything\\\\r'"
212+ - if [ "x$TEST" = "x--enable-tests" ]; then ${CABAL} new-test -w ${HC} ${TEST} ${BENCH} all; fi
213213
214− - echo Haddock... && echo -en 'travis_fold:start:haddock\\r'
214+ - "echo Haddock... && echo -en 'travis_fold:start:haddock\\\\r'"
215215 # haddock
216− - cabal new-haddock -w ${HC} ${TEST} ${BENCH} all
216+ - ${CABAL} new-haddock -w ${HC} ${TEST} ${BENCH} all
217217
218− - echo -en 'travis_fold:end:haddock\\r'
218+ - "echo -en 'travis_fold:end:haddock\\\\r'"
219219# REGENDATA ["--config=cabal.haskell-ci","--output=.travis.yml","cabal.project"]
220220# EOF