1# This Travis job script has been generated by a script via 2# 3# haskell-ci '--output=.travis.yml' '--config=cabal.haskell-ci' 'cabal.project' 4# 5# For more information, see https://github.com/haskell-CI/haskell-ci 6# 7# version: 0.3.20190425 8# 9language: c 10dist: xenial 11git: 12 # whether to recursively clone submodules 13 submodules: false 14notifications: 15 irc: 16 channels: 17 - irc.freenode.org#haskell-lens 18 skip_join: true 19 template: 20 - "\"\\x0313transformers-compat\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03 %{build_url} %{message}\"" 21cache: 22 directories: 23 - $HOME/.cabal/packages 24 - $HOME/.cabal/store 25before_cache: 26 - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log 27 # remove files that are regenerated by 'cabal update' 28 - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.* 29 - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json 30 - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache 31 - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar 32 - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx 33 - rm -rfv $CABALHOME/packages/head.hackage 34matrix: 35 include: 36 - compiler: ghc-8.8.1 37 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}} 38 env: GHCHEAD=true 39 - compiler: ghc-8.6.5 40 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4"]}} 41 - compiler: ghc-8.4.4 42 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}} 43 - compiler: ghc-8.2.2 44 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}} 45 - compiler: ghc-8.0.2 46 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}} 47 - compiler: ghc-7.10.3 48 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-2.4"]}} 49 - compiler: ghc-7.8.4 50 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-2.4"]}} 51 - compiler: ghc-7.6.3 52 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.6.3","cabal-install-2.4"]}} 53 - compiler: ghc-7.4.2 54 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.4.2","cabal-install-2.4"]}} 55 - compiler: ghc-7.2.2 56 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.2.2","cabal-install-2.4"]}} 57 - compiler: ghc-7.0.4 58 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.0.4","cabal-install-2.4"]}} 59 - compiler: ghc-head 60 addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-head","cabal-install-head"]}} 61 env: GHCHEAD=true 62 allow_failures: 63 - compiler: ghc-head 64 - compiler: ghc-8.8.1 65before_install: 66 - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//') 67 - HCPKG="$HC-pkg" 68 - unset CC 69 - CABAL=/opt/ghc/bin/cabal 70 - CABALHOME=$HOME/.cabal 71 - export PATH="$CABALHOME/bin:$PATH" 72 - TOP=$(pwd) 73 - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') )) 74 - echo $HCNUMVER 75 - CABAL="$CABAL -vnormal+nowrap+markoutput" 76 - set -o pipefail 77 - | 78 echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >> .colorful.awk 79 echo 'BEGIN { state = "output"; }' >> .colorful.awk 80 echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >> .colorful.awk 81 echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >> .colorful.awk 82 echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk 83 echo ' if (state == "cabal") {' >> .colorful.awk 84 echo ' print blue($0)' >> .colorful.awk 85 echo ' } else {' >> .colorful.awk 86 echo ' print $0' >> .colorful.awk 87 echo ' }' >> .colorful.awk 88 echo '}' >> .colorful.awk 89 - cat .colorful.awk 90 - | 91 color_cabal_output () { 92 awk -f $TOP/.colorful.awk 93 } 94 - echo text | color_cabal_output 95install: 96 - ${CABAL} --version 97 - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" 98 - TEST=--enable-tests 99 - BENCH=--enable-benchmarks 100 - GHCHEAD=${GHCHEAD-false} 101 - rm -f $CABALHOME/config 102 - | 103 echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config 104 echo "remote-build-reporting: anonymous" >> $CABALHOME/config 105 echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config 106 echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config 107 echo "world-file: $CABALHOME/world" >> $CABALHOME/config 108 echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config 109 echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config 110 echo "installdir: $CABALHOME/bin" >> $CABALHOME/config 111 echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config 112 echo "store-dir: $CABALHOME/store" >> $CABALHOME/config 113 echo "install-dirs user" >> $CABALHOME/config 114 echo " prefix: $CABALHOME" >> $CABALHOME/config 115 echo "repository hackage.haskell.org" >> $CABALHOME/config 116 echo " url: http://hackage.haskell.org/" >> $CABALHOME/config 117 - | 118 if $GHCHEAD; then 119 echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config 120 121 echo "repository head.hackage" >> $CABALHOME/config 122 echo " url: http://head.hackage.haskell.org/" >> $CABALHOME/config 123 echo " secure: True" >> $CABALHOME/config 124 echo " root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740" >> $CABALHOME/config 125 echo " 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb" >> $CABALHOME/config 126 echo " 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e" >> $CABALHOME/config 127 echo " key-threshold: 3" >> $CABALHOME/config 128 fi 129 - "echo 'jobs: 2' >> $CABALHOME/config" 130 - cat $CABALHOME/config 131 - rm -fv cabal.project cabal.project.local cabal.project.freeze 132 - travis_retry ${CABAL} v2-update -v 133 # Generate cabal.project 134 - rm -rf cabal.project cabal.project.local cabal.project.freeze 135 - touch cabal.project 136 - | 137 echo 'packages: "."' >> cabal.project 138 echo 'packages: "./tests"' >> cabal.project 139 - | 140 echo "write-ghc-environment-files: always" >> cabal.project 141 - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(transformers-compat|transformers-compat-tests)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" 142 - cat cabal.project || true 143 - cat cabal.project.local || true 144 - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi 145 - if [ -f "./tests/configure.ac" ]; then (cd "./tests" && autoreconf -i); fi 146 - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output 147 - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'" 148 - rm cabal.project.freeze 149script: 150 - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX) 151 # Packaging... 152 - ${CABAL} v2-sdist all | color_cabal_output 153 # Unpacking... 154 - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/ 155 - cd ${DISTDIR} || false 156 - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \; 157 # Generate cabal.project 158 - rm -rf cabal.project cabal.project.local cabal.project.freeze 159 - touch cabal.project 160 - | 161 echo 'packages: "transformers-compat-*/*.cabal"' >> cabal.project 162 echo 'packages: "transformers-compat-tests-*/*.cabal"' >> cabal.project 163 - | 164 echo "write-ghc-environment-files: always" >> cabal.project 165 - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(transformers-compat|transformers-compat-tests)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" 166 - cat cabal.project || true 167 - cat cabal.project.local || true 168 # Building with tests and benchmarks... 169 # build & run tests, build benchmarks 170 - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output 171 # Testing... 172 - ${CABAL} v2-test -w ${HC} ${TEST} ${BENCH} all | color_cabal_output 173 # cabal check... 174 - (cd transformers-compat-* && ${CABAL} -vnormal check) 175 - (cd transformers-compat-tests-* && ${CABAL} -vnormal check) 176 # haddock... 177 - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output 178 # Building without installed constraints for packages in global-db... 179 - rm -f cabal.project.local 180 - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks all | color_cabal_output 181 # Constraint sets 182 - rm -rf cabal.project.local 183 # Constraint set no-mtl 184 - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -mtl' all | color_cabal_output 185 # Constraint set no-generic-deriving 186 - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -generic-deriving' all | color_cabal_output 187 # Constraint set no-mtl-no-generic-deriving 188 - ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat -generic-deriving' --constraint='tranformers-compat -mtl' all | color_cabal_output 189 # Constraint set two 190 - if [ $HCNUMVER -lt 70900 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +two' all | color_cabal_output ; fi 191 # Constraint set three 192 - if [ $HCNUMVER -lt 70900 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +three' all | color_cabal_output ; fi 193 # Constraint set four 194 - if [ $HCNUMVER -lt 71100 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +four' all | color_cabal_output ; fi 195 # Constraint set five 196 - if [ $HCNUMVER -lt 80300 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers-compat +five' all | color_cabal_output ; fi 197 # Constraint set transformers-installed 198 - if [ $HCNUMVER -ge 70800 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers installed' all | color_cabal_output ; fi 199 # Constraint set transformers-newer 200 - if [ $HCNUMVER -lt 80500 ] ; then ${CABAL} v2-build -w ${HC} --disable-tests --disable-benchmarks --constraint='transformers >=0.5.5.0' all | color_cabal_output ; fi 201 202# REGENDATA ["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"] 203# EOF 204