git.iko.soy/typeable/http-api-data
on master help sign in
Use hvr's multi-ghc-travis script
a527f5bOleg Grenrus
.travis.yml+91−26
@@ -1,35 +1,100 @@
1+# This Travis job script has been generated by a script via
2+#
3+# make_travis_yml_2.hs 'http-api-data.cabal'
4+#
5+# For more information, see https://github.com/hvr/multi-ghc-travis
6+#
7+language: c
1sudo: false
8sudo: false
2
9
3−addons:
10+git:
4− apt:
11+ submodules: false # whether to recursively clone submodules
5− sources:
12+
6− - hvr-ghc
13+cache:
7− packages:
14+ directories:
8− - happy-1.19.5
15+ - $HOME/.cabal/packages
9− - libgmp-dev
16+ - $HOME/.cabal/store
10−
17+
11−env:
18+before_cache:
12− - STACK_YAML=stack.yaml FLAGS="--flag http-api-data:use-text-show"
19+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
13− - STACK_YAML=stack-ghc-7.8.yaml FLAGS="--flag http-api-data:use-text-show"
20+ # remove files that are regenerated by 'cabal update'
14− - STACK_YAML=stack-ghc-7.10.yaml FLAGS="--flag http-api-data:use-text-show"
21+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.*
15− - STACK_YAML=stack.yaml FLAGS=
22+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json
16− - STACK_YAML=stack-ghc-7.8.yaml FLAGS=
23+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache
17− - STACK_YAML=stack-ghc-7.10.yaml FLAGS=
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
26+
27+matrix:
28+ include:
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]}}
38+ - compiler: "ghc-head"
39+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
40+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-head], sources: [hvr-ghc]}}
41+
42+ allow_failures:
43+ - compiler: "ghc-head"
18
44
19before_install:
45before_install:
20− # Download and unpack the stack executable
46+ - HC=${CC}
21− - mkdir -p ~/.local/bin
47+ - unset CC
22− - export PATH=$HOME/.local/bin:/opt/happy/1.19.5/bin:$PATH
48+ - PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH
23− - travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
49+ - PKGNAME='http-api-data'
24− - export PATH=~/.local/bin:$PATH
25− - stack --version
26
50
27install:
51install:
28− - stack setup
52+ - cabal --version
53+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
54+ - BENCH=${BENCH---enable-benchmarks}
55+ - TEST=${TEST---enable-tests}
56+ - travis_retry cabal update -v
57+ - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
58+ - rm -fv cabal.project.local
59+ - "echo 'packages: .' > cabal.project"
60+ - rm -f cabal.project.freeze
61+ - cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2
62+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2
29
63
64+# Here starts the actual work to be performed for the package under test;
65+# any command which exits with a non-zero exit code causes the build to fail.
30script:
66script:
31− - stack --no-terminal build --test $FLAGS
67+ - if [ -f configure.ac ]; then autoreconf -i; fi
68+ - rm -rf dist/
69+ - cabal sdist # test that a source-distribution can be generated
70+ - cd dist/
71+ - SRCTAR=(${PKGNAME}-*.tar.gz)
72+ - SRC_BASENAME="${SRCTAR/%.tar.gz}"
73+ - tar -xvf "./$SRC_BASENAME.tar.gz"
74+ - cd "$SRC_BASENAME/"
75+## from here on, CWD is inside the extracted source-tarball
76+ - rm -fv cabal.project.local
77+ - "echo 'packages: .' > cabal.project"
78+ # this builds all libraries and executables (without tests/benchmarks)
79+ - rm -f cabal.project.freeze
80+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks
81+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --flag http-api-data:use-text-show
82+ # this builds all libraries and executables (including tests/benchmarks)
83+ # - rm -rf ./dist-newstyle
84+ - cabal new-build -w ${HC} ${TEST} ${BENCH}
32
85
33−cache:
86+ # there's no 'cabal new-test' yet, so let's emulate for now
34− directories:
87+ - TESTS=( $(awk 'tolower($0) ~ /^test-suite / { print $2 }' *.cabal) )
35− - $HOME/.stack
88+ - if [ "$TEST" != "--enable-tests" ]; then TESTS=(); fi
89+ - shopt -s globstar;
90+ RC=true; for T in ${TESTS[@]}; do echo "== $T ==";
91+ if dist-newstyle/build/**/$SRC_BASENAME/**/build/$T/$T; then echo "= $T OK =";
92+ else echo "= $T FAILED ="; RC=false; fi; done; $RC
93+
94+ - cabal new-build -w ${HC} ${TEST} ${BENCH} --flag http-api-data:use-text-show
95+ - shopt -s globstar;
96+ RC=true; for T in ${TESTS[@]}; do echo "== $T ==";
97+ if dist-newstyle/build/**/$SRC_BASENAME/**/build/$T/$T; then echo "= $T OK =";
98+ else echo "= $T FAILED ="; RC=false; fi; done; $RC
99+
100+# EOF
http-api-data.cabal+6−1
@@ -16,6 +16,11 @@ extra-source-files:
16 test/*.hs
16 test/*.hs
17 CHANGELOG.md
17 CHANGELOG.md
18 README.md
18 README.md
19+tested-with:
20+ GHC==7.8.4,
21+ GHC==7.10.3,
22+ GHC==8.0.2,
23+ GHC==8.1.*
19
24
20flag use-text-show
25flag use-text-show
21 description: Use text-show library for efficient ToHttpApiData implementations.
26 description: Use text-show library for efficient ToHttpApiData implementations.
@@ -25,7 +30,7 @@ flag use-text-show
25library
30library
26 hs-source-dirs: src/
31 hs-source-dirs: src/
27 include-dirs: include/
32 include-dirs: include/
28− build-depends: base >= 4.6 && < 4.10
33+ build-depends: base >= 4.7 && < 4.10
29 , bytestring
34 , bytestring
30 , containers
35 , containers
31 , hashable
36 , hashable