1
1
# This Travis job script has been generated by a script via
2
2
#
3
- # runghc make_travis_yml_2.hs '--branch' 'master' ' --output' '.travis.yml' '--config' 'cabal.project'
3
+ # haskell-ci ' --output' '.travis.yml' '--config=cabal.haskell-ci ' 'cabal.project'
4
4
#
5
5
# For more information, see https://github.com/haskell-CI/haskell-ci
6
6
#
7
7
language : c
8
- sudo : false
8
+ dist : xenial
9
9
10
10
git :
11
11
submodules : false # whether to recursively clone submodules
@@ -20,127 +20,132 @@ cache:
20
20
- $HOME/.cabal/store
21
21
22
22
before_cache :
23
- - rm -fv $HOME/.cabal /packages/hackage.haskell.org/build-reports.log
23
+ - rm -fv $CABALHOME /packages/hackage.haskell.org/build-reports.log
24
24
# remove files that are regenerated by 'cabal update'
25
- - rm -fv $HOME/.cabal /packages/hackage.haskell.org/00-index.*
26
- - rm -fv $HOME/.cabal /packages/hackage.haskell.org/*.json
27
- - rm -fv $HOME/.cabal /packages/hackage.haskell.org/01-index.cache
28
- - rm -fv $HOME/.cabal /packages/hackage.haskell.org/01-index.tar
29
- - rm -fv $HOME/.cabal /packages/hackage.haskell.org/01-index.tar.idx
25
+ - rm -fv $CABALHOME /packages/hackage.haskell.org/00-index.*
26
+ - rm -fv $CABALHOME /packages/hackage.haskell.org/*.json
27
+ - rm -fv $CABALHOME /packages/hackage.haskell.org/01-index.cache
28
+ - rm -fv $CABALHOME /packages/hackage.haskell.org/01-index.tar
29
+ - rm -fv $CABALHOME /packages/hackage.haskell.org/01-index.tar.idx
30
30
31
- - rm -rfv $HOME/.cabal /packages/head.hackage
31
+ - rm -rfv $CABALHOME /packages/head.hackage
32
32
33
33
matrix :
34
34
include :
35
- - compiler : " ghc-8.6.1"
36
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
37
- addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.1], sources: [hvr-ghc]}}
35
+ - compiler : " ghc-8.6.3"
36
+ addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.3], sources: [hvr-ghc]}}
38
37
- compiler : " ghc-8.4.4"
39
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
40
38
addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.4.4], sources: [hvr-ghc]}}
41
39
- compiler : " ghc-8.2.2"
42
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
43
40
addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}}
44
41
- compiler : " ghc-8.0.2"
45
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
46
42
addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.0.2], sources: [hvr-ghc]}}
47
43
- compiler : " ghc-7.10.3"
48
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
49
44
addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.10.3], sources: [hvr-ghc]}}
50
45
- compiler : " ghc-7.8.4"
51
- # env: TEST=--disable-tests BENCH=--disable-benchmarks
52
46
addons : {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.8.4], sources: [hvr-ghc]}}
53
47
54
48
before_install :
55
- - HC=${CC}
49
+ - HC=/opt/ghc/bin/${CC}
50
+ - HCVER=$(echo "$TRAVIS_COMPILER" | sed 's/ghc-//')
51
+ - echo $HCVER
56
52
- HCPKG=${HC/ghc/ghc-pkg}
57
53
- unset CC
54
+ - CABAL=/opt/ghc/bin/cabal
55
+ - CABALHOME=$HOME/.cabal
56
+ - export PATH="$CABALHOME/bin:$PATH"
58
57
- ROOTDIR=$(pwd)
59
- - mkdir -p $HOME/.local/bin
60
- - " PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
61
58
- HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
62
59
- echo $HCNUMVER
63
60
64
61
install :
65
- - cabal --version
62
+ - ${CABAL} --version
66
63
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
67
- - BENCH=${BENCH---enable-benchmarks}
68
- - TEST=${TEST---enable-tests}
69
- - HADDOCK=${HADDOCK-true}
70
- - UNCONSTRAINED=${UNCONSTRAINED-true}
71
- - NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
64
+ - TEST=--enable-tests
65
+ - BENCH=--enable-benchmarks
72
66
- GHCHEAD=${GHCHEAD-false}
73
- - travis_retry cabal update -v
74
- - " sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
67
+ - if [ "$TRAVIS_OS_NAME" = "windows" ]; then export CABALHOME=$APPDATA/cabal; else export CABALHOME=$HOME/.cabal; fi
68
+ - travis_retry ${CABAL} update -v
69
+ - sed -i.bak 's/^jobs:/-- jobs:/' $CABALHOME/config
75
70
- rm -fv cabal.project cabal.project.local
76
- - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
77
- - " printf 'packages: \" servant-swagger-ui\" \" servant-swagger-ui-core\" \" servant-swagger-ui-example\" \" servant-swagger-ui-jensoleg\" \" servant-swagger-ui-redoc\"\\ n' > cabal.project"
71
+ - grep -Ev -- '^\s*--' $CABALHOME/config | grep -Ev '^\s*$'
72
+ - rm -f cabal.project
73
+ - touch cabal.project
74
+ - " printf 'packages: \" servant-swagger-ui\"\\ n' >> cabal.project"
75
+ - " printf 'packages: \" servant-swagger-ui-core\"\\ n' >> cabal.project"
76
+ - " printf 'packages: \" servant-swagger-ui-example\"\\ n' >> cabal.project"
77
+ - " printf 'packages: \" servant-swagger-ui-jensoleg\"\\ n' >> cabal.project"
78
+ - " printf 'packages: \" servant-swagger-ui-redoc\"\\ n' >> cabal.project"
79
+ - " printf 'write-ghc-environment-files: always\\ n' >> cabal.project"
78
80
- touch cabal.project.local
79
- - " if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- servant-swagger-ui | grep -vw -- servant-swagger-ui-core | grep -vw -- servant-swagger-ui-example | grep -vw -- servant-swagger-ui-jensoleg | grep -vw -- servant-swagger-ui-redoc | sed 's/^/constraints: /' | sed 's/-[^-]* $/ installed/' >> cabal.project.local; done; fi "
81
+ - " for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^( servant-swagger-ui|servant-swagger-ui-core| servant-swagger-ui-example| servant-swagger-ui-jensoleg| servant-swagger-ui-redoc)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
80
82
- cat cabal.project || true
81
83
- cat cabal.project.local || true
82
- - if [ -f "servant-swagger-ui/configure.ac" ]; then
83
- (cd "servant-swagger-ui" && autoreconf -i);
84
- fi
85
- - if [ -f "servant-swagger-ui-core/configure.ac" ]; then
86
- (cd "servant-swagger-ui-core" && autoreconf -i);
87
- fi
88
- - if [ -f "servant-swagger-ui-example/configure.ac" ]; then
89
- (cd "servant-swagger-ui-example" && autoreconf -i);
90
- fi
91
- - if [ -f "servant-swagger-ui-jensoleg/configure.ac" ]; then
92
- (cd "servant-swagger-ui-jensoleg" && autoreconf -i);
93
- fi
94
- - if [ -f "servant-swagger-ui-redoc/configure.ac" ]; then
95
- (cd "servant-swagger-ui-redoc" && autoreconf -i);
96
- fi
84
+ - if [ -f "servant-swagger-ui/configure.ac" ]; then (cd "servant-swagger-ui" && autoreconf -i); fi
85
+ - if [ -f "servant-swagger-ui-core/configure.ac" ]; then (cd "servant-swagger-ui-core" && autoreconf -i); fi
86
+ - if [ -f "servant-swagger-ui-example/configure.ac" ]; then (cd "servant-swagger-ui-example" && autoreconf -i); fi
87
+ - if [ -f "servant-swagger-ui-jensoleg/configure.ac" ]; then (cd "servant-swagger-ui-jensoleg" && autoreconf -i); fi
88
+ - if [ -f "servant-swagger-ui-redoc/configure.ac" ]; then (cd "servant-swagger-ui-redoc" && autoreconf -i); fi
97
89
- rm -f cabal.project.freeze
98
- - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
99
- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
90
+ - ${CABAL} new-freeze -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dry
91
+ - " cat \" cabal.project.freeze\" | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
92
+ - rm "cabal.project.freeze"
93
+ - ${CABAL} new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
94
+ - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
100
95
- rm -rf .ghc.environment.* "servant-swagger-ui"/dist "servant-swagger-ui-core"/dist "servant-swagger-ui-example"/dist "servant-swagger-ui-jensoleg"/dist "servant-swagger-ui-redoc"/dist
101
96
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
102
97
103
98
# Here starts the actual work to be performed for the package under test;
104
99
# any command which exits with a non-zero exit code causes the build to fail.
105
100
script :
106
101
# test that source-distributions can be generated
107
- - cabal new-sdist all
102
+ - ${CABAL} new-sdist all
108
103
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
109
104
- cd ${DISTDIR} || false
110
105
- find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
111
- - " printf 'packages: servant-swagger-ui-*/*.cabal servant-swagger-ui-core-*/*.cabal servant-swagger-ui-example-*/*.cabal servant-swagger-ui-jensoleg-*/*.cabal servant-swagger-ui-redoc-*/*.cabal\\ n' > cabal.project"
106
+ - rm -f cabal.project
107
+ - touch cabal.project
108
+ - " printf 'packages: \" servant-swagger-ui-*/*.cabal\"\\ n' >> cabal.project"
109
+ - " printf 'packages: \" servant-swagger-ui-core-*/*.cabal\"\\ n' >> cabal.project"
110
+ - " printf 'packages: \" servant-swagger-ui-example-*/*.cabal\"\\ n' >> cabal.project"
111
+ - " printf 'packages: \" servant-swagger-ui-jensoleg-*/*.cabal\"\\ n' >> cabal.project"
112
+ - " printf 'packages: \" servant-swagger-ui-redoc-*/*.cabal\"\\ n' >> cabal.project"
113
+ - " printf 'write-ghc-environment-files: always\\ n' >> cabal.project"
112
114
- touch cabal.project.local
113
- - " if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- servant-swagger-ui | grep -vw -- servant-swagger-ui-core | grep -vw -- servant-swagger-ui-example | grep -vw -- servant-swagger-ui-jensoleg | grep -vw -- servant-swagger-ui-redoc | sed 's/^/constraints: /' | sed 's/-[^-]* $/ installed/' >> cabal.project.local; done; fi "
115
+ - " for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^( servant-swagger-ui|servant-swagger-ui-core| servant-swagger-ui-example| servant-swagger-ui-jensoleg| servant-swagger-ui-redoc)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
114
116
- cat cabal.project || true
115
117
- cat cabal.project.local || true
116
118
# this builds all libraries and executables (without tests/benchmarks)
117
- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
119
+ - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks all
118
120
119
121
# build & run tests, build benchmarks
120
- - cabal new-build -w ${HC} ${TEST} ${BENCH} all
122
+ - ${CABAL} new-build -w ${HC} ${TEST} ${BENCH} all
121
123
122
124
# cabal check
123
- - (cd servant-swagger-ui-* && cabal check)
124
- - (cd servant-swagger-ui-core-* && cabal check)
125
- - (cd servant-swagger-ui-example-* && cabal check)
126
- - (cd servant-swagger-ui-jensoleg-* && cabal check)
127
- - (cd servant-swagger-ui-redoc-* && cabal check)
125
+ - (cd servant-swagger-ui-* && ${CABAL} check)
126
+ - (cd servant-swagger-ui-core-* && ${CABAL} check)
127
+ - (cd servant-swagger-ui-example-* && ${CABAL} check)
128
+ - (cd servant-swagger-ui-jensoleg-* && ${CABAL} check)
129
+ - (cd servant-swagger-ui-redoc-* && ${CABAL} check)
128
130
129
131
# haddock
130
- - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
132
+ - ${CABAL} new-haddock -w ${HC} ${TEST} ${BENCH} all
131
133
132
134
# Build without installed constraints for packages in global-db
133
- - 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
135
+ - rm -f cabal.project.local; ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks all;
134
136
135
137
# Constraint sets
136
138
- rm -rf cabal.project.local
137
139
138
140
# Constraint set servant-0.14
139
- - if [ $HCNUMVER -ge 70800 ] && [ $HCNUMVER -lt 80800 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.14.*' all; else echo skipping...; fi
141
+ - ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.14.*' all
140
142
141
143
# Constraint set servant-0.15
142
- - if [ $HCNUMVER -ge 80000 ] && [ $HCNUMVER -lt 80800 ]; then cabal new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.15.*' all; else echo skipping... ; fi
144
+ - if [ $HCNUMVER -ge 80000 ] && [ $HCNUMVER -lt 80800 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.15.*' all ; fi
143
145
146
+ # Constraint set servant-0.16
147
+ - if [ $HCNUMVER -ge 80000 ] && [ $HCNUMVER -lt 80800 ] ; then ${CABAL} new-build -w ${HC} --disable-tests --disable-benchmarks --constraint='servant ==0.16.*' all ; fi
144
148
145
- # REGENDATA ["--branch","master","--output",".travis.yml","--config","cabal.project"]
149
+
150
+ # REGENDATA ["--output",".travis.yml","--config=cabal.haskell-ci","cabal.project"]
146
151
# EOF
0 commit comments