1
1
# This Travis job script has been generated by a script via
2
2
#
3
- # make_travis_yml_2.hs '-o' '.travis.yml' 'text.cabal'
3
+ # runghc make_travis_yml_2.hs 'text.cabal'
4
4
#
5
5
# For more information, see https://github.com/hvr/multi-ghc-travis
6
6
#
@@ -11,6 +11,9 @@ sudo: false
11
11
notifications :
12
12
email : false
13
13
14
+ git :
15
+ submodules : false # whether to recursively clone submodules
16
+
14
17
cache :
15
18
directories :
16
19
- $HOME/.cabal/packages
@@ -25,87 +28,129 @@ before_cache:
25
28
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
26
29
- rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
27
30
31
+ - rm -rfv $HOME/.cabal/packages/head.hackage
32
+
28
33
matrix :
29
34
include :
30
- - compiler : " ghc-7.0.4"
31
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
32
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.0.4], sources: [hvr-ghc]}}
33
- - compiler : " ghc-7.2.2"
35
+ - compiler : " ghc-8.6.1"
36
+ env : GHCHEAD=true
37
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.6.1], sources: [hvr-ghc]}}
38
+ - compiler : " ghc-8.4.3"
39
+ # Fails due to GHC #15436
40
+ env : TEST=--disable-tests BENCH=--disable-benchmarks
41
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.4.3], sources: [hvr-ghc]}}
42
+ - compiler : " ghc-8.2.2"
34
43
# env: TEST=--disable-tests BENCH=--disable-benchmarks
35
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7 .2.2], sources: [hvr-ghc]}}
36
- - compiler : " ghc-7.4 .2"
44
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2 ,ghc-8 .2.2], sources: [hvr-ghc]}}
45
+ - compiler : " ghc-8.0 .2"
37
46
# env: TEST=--disable-tests BENCH=--disable-benchmarks
38
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.4 .2], sources: [hvr-ghc]}}
39
- - compiler : " ghc-7.6 .3"
47
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2 ,ghc-8.0 .2], sources: [hvr-ghc]}}
48
+ - compiler : " ghc-7.10 .3"
40
49
# env: TEST=--disable-tests BENCH=--disable-benchmarks
41
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.6 .3], sources: [hvr-ghc]}}
50
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2 ,ghc-7.10 .3], sources: [hvr-ghc]}}
42
51
- compiler : " ghc-7.8.4"
43
52
# env: TEST=--disable-tests BENCH=--disable-benchmarks
44
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.8.4], sources: [hvr-ghc]}}
45
- - compiler : " ghc-7.10 .3"
53
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2 ,ghc-7.8.4], sources: [hvr-ghc]}}
54
+ - compiler : " ghc-7.6 .3"
46
55
# env: TEST=--disable-tests BENCH=--disable-benchmarks
47
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head ,ghc-7.10 .3], sources: [hvr-ghc]}}
48
- - compiler : " ghc-8.0 .2"
56
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2 ,ghc-7.6 .3], sources: [hvr-ghc]}}
57
+ - compiler : " ghc-7.4 .2"
49
58
# env: TEST=--disable-tests BENCH=--disable-benchmarks
50
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.0.2], sources: [hvr-ghc]}}
51
- - compiler : " ghc-8.2.2"
59
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.4.2], sources: [hvr-ghc]}}
60
+ - compiler : " ghc-7.2.2"
61
+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
62
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.2.2], sources: [hvr-ghc]}}
63
+ - compiler : " ghc-7.0.4"
52
64
# env: TEST=--disable-tests BENCH=--disable-benchmarks
53
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.2], sources: [hvr-ghc]}}
65
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.0.4], sources: [hvr-ghc]}}
66
+
67
+ allow_failures :
68
+ - compiler : " ghc-8.6.1"
54
69
55
70
before_install :
56
- - HC=${CC}
57
- - HCPKG=${HC/ghc/ghc-pkg}
58
- - unset CC
59
- - PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH
60
- - PKGNAME='text'
71
+ - HC=${CC}
72
+ - HCPKG=${HC/ghc/ghc-pkg}
73
+ - unset CC
74
+ - ROOTDIR=$(pwd)
75
+ - mkdir -p $HOME/.local/bin
76
+ - " PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
77
+ - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
78
+ - echo $HCNUMVER
61
79
62
80
install :
63
- - cabal --version
64
- - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
65
- - BENCH=${BENCH---enable-benchmarks}
66
- - TEST=${TEST---enable-tests}
67
- - HADDOCK=${HADDOCK-true}
68
- - INSTALLED=${INSTALLED-true}
69
- - travis_retry cabal update -v
70
- - sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
71
- - rm -fv cabal.project.local
72
- - " echo 'packages: .' > cabal.project"
73
- - rm -f cabal.project.freeze
74
- - cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all
75
- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all
81
+ - cabal --version
82
+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
83
+ - BENCH=${BENCH---enable-benchmarks}
84
+ - TEST=${TEST---enable-tests}
85
+ - HADDOCK=${HADDOCK-true}
86
+ - UNCONSTRAINED=${UNCONSTRAINED-true}
87
+ - NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
88
+ - GHCHEAD=${GHCHEAD-false}
89
+ - travis_retry cabal update -v
90
+ - " sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
91
+ - rm -fv cabal.project cabal.project.local
92
+ # Overlay Hackage Package Index for GHC HEAD: https://github.com/hvr/head.hackage
93
+ - |
94
+ if $GHCHEAD; then
95
+ sed -i 's/-- allow-newer: .*/allow-newer: *:base/' ${HOME}/.cabal/config
96
+ for pkg in $($HCPKG list --simple-output); do pkg=$(echo $pkg | sed 's/-[^-]*$//'); sed -i "s/allow-newer: /allow-newer: *:$pkg, /" ${HOME}/.cabal/config; done
97
+
98
+ echo 'repository head.hackage' >> ${HOME}/.cabal/config
99
+ echo ' url: http://head.hackage.haskell.org/' >> ${HOME}/.cabal/config
100
+ echo ' secure: True' >> ${HOME}/.cabal/config
101
+ echo ' root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740' >> ${HOME}/.cabal/config
102
+ echo ' 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb' >> ${HOME}/.cabal/config
103
+ echo ' 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> ${HOME}/.cabal/config
104
+ echo ' key-threshold: 3' >> ${HOME}/.cabal.config
105
+
106
+ grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
107
+
108
+ cabal new-update head.hackage -v
109
+ fi
110
+ - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
111
+ - " printf 'packages: \" .\"\\ n' > cabal.project"
112
+ - touch cabal.project.local
113
+ - " if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- text | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
114
+ - cat cabal.project || true
115
+ - cat cabal.project.local || true
116
+ - if [ -f "./configure.ac" ]; then
117
+ (cd "." && autoreconf -i);
118
+ fi
119
+ - rm -f cabal.project.freeze
120
+ - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
121
+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
122
+ - rm -rf .ghc.environment.* "."/dist
123
+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
76
124
77
125
# Here starts the actual work to be performed for the package under test;
78
126
# any command which exits with a non-zero exit code causes the build to fail.
79
127
script :
80
- - if [ -f configure.ac ]; then autoreconf -i; fi
81
- - rm -rf .ghc.environment.* dist/
82
- - cabal sdist # test that a source-distribution can be generated
83
- - cd dist/
84
- - SRCTAR=(${PKGNAME}-*.tar.gz)
85
- - SRC_BASENAME="${SRCTAR/%.tar.gz}"
86
- - tar -xvf "./$SRC_BASENAME.tar.gz"
87
- - cd "$SRC_BASENAME/"
88
- # # from here on, CWD is inside the extracted source-tarball
89
- - rm -fv cabal.project.local
90
- - " echo 'packages: .' > cabal.project"
91
- # this builds all libraries and executables (without tests/benchmarks)
92
- - rm -f cabal.project.freeze
93
- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
94
- # this builds all libraries and executables (including tests/benchmarks)
95
- # - rm -rf ./dist-newstyle
96
-
97
- # Build with installed constraints for packages in global-db
98
- - if $INSTALLED; then
99
- echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks $(${HCPKG} list --global --simple-output --names-only | sed 's/\([a-zA-Z0-9-]\{1,\}\) */--constraint="\1 installed" /g') all | sh;
100
- else echo "Not building with installed constraints"; fi
101
-
102
- # build & run tests, build benchmarks
103
- - cabal new-build -w ${HC} ${TEST} ${BENCH} all
104
- - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} all; fi
105
-
106
- # haddock
107
- - rm -rf ./dist-newstyle
108
- - if $HADDOCK; then cabal new-haddock -w ${HC} --disable-tests --disable-benchmarks all; else echo "Skipping haddock generation";fi
109
-
110
- # REGENDATA ["-o",".travis.yml","text.cabal"]
128
+ # test that source-distributions can be generated
129
+ - (cd "." && cabal sdist)
130
+ - mv "."/dist/text-*.tar.gz ${DISTDIR}/
131
+ - cd ${DISTDIR} || false
132
+ - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
133
+ - " printf 'packages: text-*/*.cabal\\ n' > cabal.project"
134
+ - touch cabal.project.local
135
+ - " if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- text | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
136
+ - cat cabal.project || true
137
+ - cat cabal.project.local || true
138
+ # this builds all libraries and executables (without tests/benchmarks)
139
+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
140
+
141
+ # build & run tests, build benchmarks
142
+ - cabal new-build -w ${HC} ${TEST} ${BENCH} all
143
+ - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi
144
+
145
+ # cabal check
146
+ - (cd text-* && cabal check)
147
+
148
+ # haddock
149
+ - rm -rf ./dist-newstyle
150
+ - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
151
+
152
+ # Build without installed constraints for packages in global-db
153
+ - 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
154
+
155
+ # REGENDATA ["text.cabal"]
111
156
# EOF
0 commit comments