git.iko.soy/typeable/http-api-data
on master help sign in
Use hvr's multi-ghc-travis script
commita527f5b7787756d4e0424767d00241aa4bccb5fc authorOleg Grenrus <oleg.grenrus@iki.fi> dateThu 12 Jan 2017, 15:54 (10 years ago) parent78368a7
2 files changed+97−27
.travis.yml+91−26 http-api-data.cabal+6−1
.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
18sudo: false
29
3−addons:
4− apt:
5− sources:
6− - hvr-ghc
7− packages:
8− - happy-1.19.5
9− - libgmp-dev
10−
11−env:
12− - STACK_YAML=stack.yaml FLAGS="--flag http-api-data:use-text-show"
13− - STACK_YAML=stack-ghc-7.8.yaml FLAGS="--flag http-api-data:use-text-show"
14− - STACK_YAML=stack-ghc-7.10.yaml FLAGS="--flag http-api-data:use-text-show"
15− - STACK_YAML=stack.yaml FLAGS=
16− - STACK_YAML=stack-ghc-7.8.yaml FLAGS=
17− - STACK_YAML=stack-ghc-7.10.yaml FLAGS=
10+git:
11+ submodules: false # whether to recursively clone submodules
12+
13+cache:
14+ directories:
15+ - $HOME/.cabal/packages
16+ - $HOME/.cabal/store
17+
18+before_cache:
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
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"
1844
1945before_install:
20− # Download and unpack the stack executable
21− - mkdir -p ~/.local/bin
22− - export PATH=$HOME/.local/bin:/opt/happy/1.19.5/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'
24− - export PATH=~/.local/bin:$PATH
25− - stack --version
46+ - HC=${CC}
47+ - unset CC
48+ - PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH
49+ - PKGNAME='http-api-data'
2650
2751install:
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
2963
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.
3066script:
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}
3285
33−cache:
34− directories:
35− - $HOME/.stack
86+ # there's no 'cabal new-test' yet, so let's emulate for now
87+ - TESTS=( $(awk 'tolower($0) ~ /^test-suite / { print $2 }' *.cabal) )
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:
1616 test/*.hs
1717 CHANGELOG.md
1818 README.md
19+tested-with:
20+ GHC==7.8.4,
21+ GHC==7.10.3,
22+ GHC==8.0.2,
23+ GHC==8.1.*
1924
2025flag use-text-show
2126 description: Use text-show library for efficient ToHttpApiData implementations.
@@ -25,7 +30,7 @@ flag use-text-show
2530library
2631 hs-source-dirs: src/
2732 include-dirs: include/
28− build-depends: base >= 4.6 && < 4.10
33+ build-depends: base >= 4.7 && < 4.10
2934 , bytestring
3035 , containers
3136 , hashable