@@ -1,306 +1,116 @@
1−# This file has been generated by travis-meta-yaml 0.2.0.0
1+# This Travis job script has been generated by a script via
2−# see https://github.com/phadej/travis-meta-yaml
2+#
3−sudo: false
3+# make_travis_yml_2.hs 'servant-swagger-ui.cabal'
5+# For more information, see https://github.com/hvr/multi-ghc-travis
11+ submodules: false # whether to recursively clone submodules
15+ - $HOME/.cabal/packages
19+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
20+ # remove files that are regenerated by 'cabal update'
21+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.*
22+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json
23+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache
24+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
25+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
29+ - compiler: "ghc-7.8.4"
30+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
31+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.8.4], sources: [hvr-ghc]}}
32+ - compiler: "ghc-7.10.3"
33+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
34+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.10.3], sources: [hvr-ghc]}}
35+ - compiler: "ghc-8.0.2"
36+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
37+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.0.2], sources: [hvr-ghc]}}
5before_install:
39before_install:
6−- unset CC
41+ - unset CC
7−- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
42+ - PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH
8−- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo
43+ - PKGNAME='servant-swagger-ui'
12−- if [ "$NOTESTS" = "YES" ]; then export CABALCONFOPTS="$CABALFLAGS"; export CABALTEST="true";
13− else export CABALCONFOPTS="$CABALFLAGS --enable-tests --enable-benchmarks"; export
14− CABALTEST="cabal test"; fi
15−- if [ "$PEDANTIC" = "YES" ]; then export CABALBUILDOPTS="--ghc-options=-Werror --ghc-options=-Wall";
18−- if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ]; then zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz
46+ - cabal --version
19− > $HOME/.cabal/packages/hackage.haskell.org/00-index.tar; ls -l $HOME/.cabal/packages/hackage.haskell.org/;
47+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
48+ - BENCH=${BENCH---enable-benchmarks}
49+ - TEST=${TEST---enable-tests}
50+ - travis_retry cabal update -v
20− fi; cabal update; sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config; if [ -n "$CABALCONFIG"
51+ - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
21− ]; then cp $CABALCONFIG cabal.config; fi; if [ -n "$STACKAGESNAPSHOT" ]; then curl
52+ - rm -fv cabal.project.local
22− --silent https://www.stackage.org/$STACKAGESNAPSHOT/cabal.config | grep -v "$(cabal
53+ - "echo 'packages: .' > cabal.project"
23− info . -v0 | head -n 1 | awk '{ print $2 }' | sed -E 's/-[0-9]+(\.[0-9]+)+//') =="
54+ - rm -f cabal.project.freeze
24− > cabal.config; fi; cabal install --constraint='integer-simple installed' --only-dependencies
55+ - cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2
25− $CABALCONFOPTS --dry -v > installplan.txt; sed -i -e '1,/^Resolving /d' installplan.txt;
56+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2
26− cat installplan.txt; if diff -u $HOME/.cabsnap/installplan.txt installplan.txt;
57+
27− then echo "cabal build-cache HIT"; rm -rfv .ghc; cp -av $HOME/.cabsnap/ghc $HOME/.ghc;
58+# Here starts the actual work to be performed for the package under test;
28− cp -av $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
59+# any command which exits with a non-zero exit code causes the build to fail.
29− else echo "cabal build-cache MISS"; rm -rf $HOME/.cabsnap; mkdir -p $HOME/.ghc $HOME/.cabal/lib
30− $HOME/.cabal/share $HOME/.cabal/bin; cabal install --constraint='integer-simple
31− installed' --only-dependencies $CABALCONFOPTS; fi; if [ ! -d $HOME/.cabsnap ]; then
32− echo "snapshotting package-db to build-cache"; mkdir $HOME/.cabsnap; cp -av $HOME/.ghc
33− $HOME/.cabsnap/ghc; cp -av $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin
34− installplan.txt $HOME/.cabsnap/; fi;
36−- if [ -f configure.ac ]; then autoreconf -i; fi
61+ - if [ -f configure.ac ]; then autoreconf -i; fi
37−- cabal configure $CABALCONFOPTS -v2
62+ - rm -rf dist/
38−- cabal build $CABALBUILDOPTS
63+ - cabal sdist # test that a source-distribution can be generated
39−- $CABALTEST
64+ - cd dist/
40−- if [ "$CABALVER" = "1.22" ]; then cabal check; fi
65+ - SRCTAR=(${PKGNAME}-*.tar.gz)
41−- cabal sdist
66+ - SRC_BASENAME="${SRCTAR/%.tar.gz}"
42−- SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && (cd dist && cabal install
67+ - tar -xvf "./$SRC_BASENAME.tar.gz"
43− --constraint='integer-simple installed' --force-reinstalls $CABALFLAGS "$SRC_TGZ")
68+ - cd "$SRC_BASENAME/"
44−matrix:
69+## from here on, CWD is inside the extracted source-tarball
45− fast_finish: true
70+ - rm -fv cabal.project.local
46− include:
71+ - "echo 'packages: .' > cabal.project"
47− - env: GHCVER=8.0.2 CABALVER=1.24 CABALCONFIG=swagger2-2.1-cabal.config
72+ # this builds all libraries and executables (without tests/benchmarks)
48− addons:
73+ - rm -f cabal.project.freeze
49− apt:
74+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks
51− - hvr-ghc
76+ - if [ ! $HC = "ghc-8.0.1" ]; then UNLESSGHC802=true; fi
52− packages:
77+ - if [ ! $HC = "ghc-7.8.4" ]; then UNLESSGHC708=true; fi
53− - cabal-install-1.24
78+
54− - ghc-8.0.2
79+ - $UNLESSGHC802 cabal new-build -w ${HC} --disable-tests --disable-benchmarks '--constraint=servant==0.4.*'
55− - libgmp-dev
80+ - $UNLESSGHC802 cabal new-build -w ${HC} --enable-tests --disable-benchmarks '--constraint=servant==0.4.*'
56− compiler: ! ': # ghc-8.0.2 cabal-1.24 swagger2-2.1-cabal.config'
81+
57− - env: GHCVER=8.0.2 CABALVER=1.24 CABALCONFIG=servant-0.10-cabal.config
82+ - $UNLESSGHC802 cabal new-build -w ${HC} --disable-tests --disable-benchmarks '--constraint=servant==0.5.*'
58− addons:
83+ - $UNLESSGHC802 cabal new-build -w ${HC} --enable-tests --disable-benchmarks '--constraint=servant==0.5.*'
60− sources:
85+ - $UNLESSGHC802 cabal new-build -w ${HC} --disable-tests --disable-benchmarks '--constraint=servant==0.6.*'
61− - hvr-ghc
86+ - $UNLESSGHC802 cabal new-build -w ${HC} --enable-tests --disable-benchmarks '--constraint=servant==0.6.*'
63− - cabal-install-1.24
88+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks '--constraint=servant==0.7.*'
64− - ghc-8.0.2
89+ - cabal new-build -w ${HC} --enable-tests --disable-benchmarks '--constraint=servant==0.7.*'
66− compiler: ! ': # ghc-8.0.2 cabal-1.24 servant-0.10-cabal.config'
91+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks '--constraint=servant==0.8.*'
67− - env: GHCVER=8.0.2 CABALVER=1.24 CABALCONFIG=servant-0.9-cabal.config
92+ - cabal new-build -w ${HC} --enable-tests --disable-benchmarks '--constraint=servant==0.8.*'
69− apt:
94+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks '--constraint=servant==0.9.*'
70− sources:
95+ - cabal new-build -w ${HC} --enable-tests --disable-benchmarks '--constraint=servant==0.9.*'
72− packages:
97+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks '--constraint=servant==0.10.*'
73− - cabal-install-1.24
98+ - cabal new-build -w ${HC} --enable-tests --disable-benchmarks '--constraint=servant==0.10.*'
75− - libgmp-dev
100+ # this builds all libraries and executables (including tests/benchmarks)
76− compiler: ! ': # ghc-8.0.2 cabal-1.24 servant-0.9-cabal.config'
101+ # - rm -rf ./dist-newstyle
77− - env: GHCVER=8.0.2 CABALVER=1.24 CABALCONFIG=servant-0.8-cabal.config
102+ - cabal new-build -w ${HC} ${TEST} ${BENCH}
79− apt:
104+ # there's no 'cabal new-test' yet, so let's emulate for now
80− sources:
105+ - TESTS=( $(awk 'tolower($0) ~ /^test-suite / { print $2 }' *.cabal) )
81− - hvr-ghc
106+ - if [ "$TEST" != "--enable-tests" ]; then TESTS=(); fi
82− packages:
107+ - shopt -s globstar;
83− - cabal-install-1.24
108+ RC=true; for T in ${TESTS[@]}; do echo "== $T ==";
84− - ghc-8.0.2
109+ if dist-newstyle/build/**/$SRC_BASENAME/**/build/$T/$T; then echo "= $T OK =";
85− - libgmp-dev
110+ else echo "= $T FAILED ="; RC=false; fi; done; $RC
86− compiler: ! ': # ghc-8.0.2 cabal-1.24 servant-0.8-cabal.config'
111+
87− - env: GHCVER=8.0.2 CABALVER=1.24 CABALCONFIG=servant-0.7-cabal.config
112+# EOF
96− compiler: ! ': # ghc-8.0.2 cabal-1.24 servant-0.7-cabal.config'
97− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=swagger2-2.1-cabal.config
103− - cabal-install-1.24
106− compiler: ! ': # ghc-8.0.1 cabal-1.24 swagger2-2.1-cabal.config'
107− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.10-cabal.config
113− - cabal-install-1.24
116− compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.10-cabal.config'
117− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.9-cabal.config
123− - cabal-install-1.24
126− compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.9-cabal.config'
127− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.8-cabal.config
133− - cabal-install-1.24
136− compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.8-cabal.config'
137− - env: GHCVER=8.0.1 CABALVER=1.24 CABALCONFIG=servant-0.7-cabal.config
143− - cabal-install-1.24
146− compiler: ! ': # ghc-8.0.1 cabal-1.24 servant-0.7-cabal.config'
147− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.1-cabal.config
153− - cabal-install-1.22
156− compiler: ! ': # ghc-7.10.3 cabal-1.22 swagger2-2.1-cabal.config'
157− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=swagger2-2.0-cabal.config
163− - cabal-install-1.22
166− compiler: ! ': # ghc-7.10.3 cabal-1.22 swagger2-2.0-cabal.config'
167− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.10-cabal.config
173− - cabal-install-1.22
176− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.10-cabal.config'
177− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.9-cabal.config
183− - cabal-install-1.22
186− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.9-cabal.config'
187− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.8-cabal.config
193− - cabal-install-1.22
196− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.8-cabal.config'
197− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.7-cabal.config
203− - cabal-install-1.22
206− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.7-cabal.config'
207− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.6-cabal.config
213− - cabal-install-1.22
216− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.6-cabal.config'
217− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.5-cabal.config
223− - cabal-install-1.22
226− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.5-cabal.config'
227− - env: GHCVER=7.10.3 CABALVER=1.22 CABALCONFIG=servant-0.4-cabal.config
233− - cabal-install-1.22
236− compiler: ! ': # ghc-7.10.3 cabal-1.22 servant-0.4-cabal.config'
237− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.9-cabal.config
243− - cabal-install-1.18
246− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.9-cabal.config'
247− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.8-cabal.config
253− - cabal-install-1.18
256− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.8-cabal.config'
257− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.7-cabal.config
263− - cabal-install-1.18
266− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.7-cabal.config'
267− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.6-cabal.config
273− - cabal-install-1.18
276− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.6-cabal.config'
277− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.5-cabal.config
283− - cabal-install-1.18
286− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.5-cabal.config'
287− - env: GHCVER=7.8.4 CABALVER=1.18 CABALCONFIG=servant-0.4-cabal.config
293− - cabal-install-1.18
296− compiler: ! ': # ghc-7.8.4 cabal-1.18 servant-0.4-cabal.config'
299− - master
116+ - master
301−- rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
302−- rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
306− - $HOME/.cabal/packages