11# This Travis job script has been generated by a script via
22#
3- # make_travis_yml_2.hs 'snap-core.cabal'
3+ # runghc make_travis_yml_2.hs 'snap-core.cabal'
44#
5- # For more information, see https://github.com/hvr/multi-ghc-travis
5+ # For more information, see https://github.com/haskell-CI/haskell-ci
66#
77language : c
88sudo : false
@@ -24,75 +24,102 @@ before_cache:
2424 - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
2525 - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
2626
27+ - rm -rfv $HOME/.cabal/packages/head.hackage
28+
2729matrix :
2830 include :
29- - compiler : " ghc-7.4.2 "
31+ - compiler : " ghc-8.6.3 "
3032 # env: TEST=--disable-tests BENCH=--disable-benchmarks
31- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.4.2 ], sources: [hvr-ghc]}}
32- - compiler : " ghc-7.6.3 "
33+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-8.6.3 ], sources: [hvr-ghc]}}
34+ - compiler : " ghc-8.4.4 "
3335 # env: TEST=--disable-tests BENCH=--disable-benchmarks
34- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.6.3 ], sources: [hvr-ghc]}}
35- - compiler : " ghc-7.8.4 "
36+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-8.4.4 ], sources: [hvr-ghc]}}
37+ - compiler : " ghc-8.2.2 "
3638 # env: TEST=--disable-tests BENCH=--disable-benchmarks
37- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.8.4 ], sources: [hvr-ghc]}}
38- - compiler : " ghc-7.10.3 "
39+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-8.2.2 ], sources: [hvr-ghc]}}
40+ - compiler : " ghc-8.0.2 "
3941 # env: TEST=--disable-tests BENCH=--disable-benchmarks
40- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.10.3 ], sources: [hvr-ghc]}}
41- - compiler : " ghc-8.0.1 "
42+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-8.0.2 ], sources: [hvr-ghc]}}
43+ - compiler : " ghc-7.10.3 "
4244 # env: TEST=--disable-tests BENCH=--disable-benchmarks
43- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-8.0.1 ], sources: [hvr-ghc]}}
44- - compiler : " ghc-8.2.1 "
45+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-7.10.3 ], sources: [hvr-ghc]}}
46+ - compiler : " ghc-7.8.4 "
4547 # env: TEST=--disable-tests BENCH=--disable-benchmarks
46- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-8.2.1 ], sources: [hvr-ghc]}}
47- - compiler : " ghc-8.4 .3"
48+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-7.8.4 ], sources: [hvr-ghc]}}
49+ - compiler : " ghc-7.6 .3"
4850 # env: TEST=--disable-tests BENCH=--disable-benchmarks
49- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-8.4 .3], sources: [hvr-ghc]}}
50- - compiler : " ghc-8.6.1 "
51+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-7.6 .3], sources: [hvr-ghc]}}
52+ - compiler : " ghc-7.4.2 "
5153 # env: TEST=--disable-tests BENCH=--disable-benchmarks
52- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-8.6.1 ], sources: [hvr-ghc]}}
54+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4 ,ghc-7.4.2 ], sources: [hvr-ghc]}}
5355
5456before_install :
55- - HC=${CC}
56- - unset CC
57- - PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH
58- - PKGNAME='snap-core'
57+ - HC=${CC}
58+ - HCPKG=${HC/ghc/ghc-pkg}
59+ - unset CC
60+ - ROOTDIR=$(pwd)
61+ - mkdir -p $HOME/.local/bin
62+ - " PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
63+ - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
64+ - echo $HCNUMVER
5965
6066install :
61- - cabal --version
62- - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
63- - BENCH=${BENCH---enable-benchmarks}
64- - TEST=${TEST---enable-tests}
65- - travis_retry cabal update -v
66- - cabal outdated --exit-code
67- - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
68- - rm -fv cabal.project.local
69- - " echo 'packages: .' > cabal.project"
70- - rm -f cabal.project.freeze
71- - cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all
72- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all
67+ - cabal --version
68+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
69+ - BENCH=${BENCH---enable-benchmarks}
70+ - TEST=${TEST---enable-tests}
71+ - HADDOCK=${HADDOCK-true}
72+ - UNCONSTRAINED=${UNCONSTRAINED-true}
73+ - NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
74+ - GHCHEAD=${GHCHEAD-false}
75+ - travis_retry cabal update -v
76+ - " sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
77+ - rm -fv cabal.project cabal.project.local
78+ - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
79+ - " printf 'packages: \" .\"\\ n' > cabal.project"
80+ - " printf 'write-ghc-environment-files: always\\ n' >> cabal.project"
81+ - touch cabal.project.local
82+ - " if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- snap-core | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
83+ - cat cabal.project || true
84+ - cat cabal.project.local || true
85+ - if [ -f "./configure.ac" ]; then
86+ (cd "." && autoreconf -i);
87+ fi
88+ - rm -f cabal.project.freeze
89+ - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
90+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
91+ - rm -rf .ghc.environment.* "."/dist
92+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
7393
7494# Here starts the actual work to be performed for the package under test;
7595# any command which exits with a non-zero exit code causes the build to fail.
7696script :
77- - if [ -f configure.ac ]; then autoreconf -i; fi
78- - rm -rf .ghc.environment.* dist/
79- - cabal sdist # test that a source-distribution can be generated
80- - cd dist/
81- - SRCTAR=(${PKGNAME}-*.tar.gz)
82- - SRC_BASENAME="${SRCTAR/%.tar.gz}"
83- - tar -xvf "./$SRC_BASENAME.tar.gz"
84- - cd "$SRC_BASENAME/"
85- # # from here on, CWD is inside the extracted source-tarball
86- - rm -fv cabal.project.local
87- - " echo 'packages: .' > cabal.project"
88- # this builds all libraries and executables (without tests/benchmarks)
89- - rm -f cabal.project.freeze
90- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
91- # this builds all libraries and executables (including tests/benchmarks)
92- # - rm -rf ./dist-newstyle
97+ # test that source-distributions can be generated
98+ - cabal new-sdist all
99+ - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
100+ - cd ${DISTDIR} || false
101+ - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
102+ - " printf 'packages: snap-core-*/*.cabal\\ n' > cabal.project"
103+ - " printf 'write-ghc-environment-files: always\\ n' >> cabal.project"
104+ - touch cabal.project.local
105+ - " if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- snap-core | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
106+ - cat cabal.project || true
107+ - cat cabal.project.local || true
108+ # this builds all libraries and executables (without tests/benchmarks)
109+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
110+
111+ # build & run tests, build benchmarks
112+ - cabal new-build -w ${HC} ${TEST} ${BENCH} all
113+ - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi
114+
115+ # cabal check
116+ - (cd snap-core-* && cabal check)
117+
118+ # haddock
119+ - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
93120
94- # build & run tests
95- - cabal new-build -w ${HC} ${TEST} ${BENCH} all
96- - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} all; fi
121+ # Build without installed constraints for packages in global-db
122+ - if $UNCONSTRAINED; then rm -f cabal.project.local; echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks all; else echo "Not building without installed constraints"; fi
97123
124+ # REGENDATA ["snap-core.cabal"]
98125# EOF
0 commit comments