From 65c6d00191cb0dffc60d02a30ce70fdbd8b6fb5d Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 16 Feb 2016 09:44:28 +0200 Subject: [PATCH] Change newlines/semicolons --- .travis.yml | 71 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/.travis.yml b/.travis.yml index d955187..0b07c90 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,30 @@ -language: c +# Use new container infrastructure to enable caching sudo: false +# Choose a lightweight base image; we provide our own build tools. +language: c + +# Caching so the next build will be fast too. cache: directories: - $HOME/.ghc - $HOME/.cabal - $HOME/.stack +# The different configurations we want to test. We have BUILD=cabal which uses +# cabal-install, and BUILD=stack which uses Stack. More documentation on each +# of those below. +# +# We set the compiler values here to tell Travis to use a different +# cache file per set of arguments. +# +# If you need to have different apt packages for each combination in the +# matrix, you can use a line such as: +# addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}} matrix: include: - - env: BUILD=cabal GHCVER=7.4.2 CABALVER=1.16 - compiler: ": #GHC 7.4.2" - addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2], sources: [hvr-ghc]}} + # We grab the appropriate GHC and cabal-install versions from hvr's PPA. See: + # https://github.com/hvr/multi-ghc-travis - env: BUILD=cabal GHCVER=7.6.3 CABALVER=1.16 compiler: ": #GHC 7.6.3" addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}} @@ -22,10 +35,14 @@ matrix: compiler: ": #GHC 7.10.3" addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}} + # Build with the newest GHC and cabal-install. This is an accepted failure, + # see below. - env: BUILD=cabal GHCVER=head CABALVER=head compiler: ": #GHC HEAD" addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}} + # The Stack builds. We can pass in arbitrary Stack arguments via the ARGS + # variable, such as using --stack-yaml to point to a different file. - env: BUILD=stack ARGS="--resolver lts-2" compiler: ": #stack 7.8.4" addons: {apt: {packages: [ghc-7.8.4], sources: [hvr-ghc]}} @@ -38,10 +55,12 @@ matrix: compiler: ": #stack 7.10.3" addons: {apt: {packages: [ghc-7.10.3], sources: [hvr-ghc]}} + # Nightly builds are allowed to fail - env: BUILD=stack ARGS="--resolver nightly" compiler: ": #stack nightly" addons: {apt: {packages: [libgmp-dev]}} + # Build on OS X in addition to Linux - env: BUILD=stack ARGS="--resolver lts-2" compiler: ": #stack 7.8.4 osx" os: osx @@ -63,17 +82,22 @@ matrix: - env: BUILD=stack ARGS="--resolver nightly" before_install: +# Using compiler above sets CC to an invalid value, so unset it - unset CC + +# We want to always allow newer versions of packages when building on GHC HEAD - CABALARGS="" - if [ "x$GHCVER" = "xhead" ]; then CABALARGS=--allow-newer; fi + +# Download and unpack the stack executable - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin:$PATH - mkdir -p ~/.local/bin - | - if [ `uname` = "Darwin" ]; + if [ `uname` = "Darwin" ] then - curl --insecure -L https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin; + curl --insecure -L https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin else - curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'; + curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack' fi install: @@ -82,24 +106,29 @@ install: - | case "$BUILD" in stack) - stack --no-terminal --install-ghc $ARGS test --only-dependencies;; + stack --no-terminal --install-ghc $ARGS test --only-dependencies + ;; cabal) - cabal --version; - travis_retry cabal update; - cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS;; + cabal --version + travis_retry cabal update + cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS + ;; esac script: -- case "$BUILD" in +- | + case "$BUILD" in stack) - stack --no-terminal $ARGS test --haddock --no-haddock-deps;; + stack --no-terminal $ARGS test --haddock --no-haddock-deps + ;; cabal) - cabal configure --enable-tests --enable-benchmarks -v2 --ghc-options="-O0 -Werror"; - cabal build; - cabal check || [ "$CABALVER" == "1.16" ]; - cabal test; - cabal sdist; - cabal copy; - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && - (cd dist && cabal install --force-reinstalls "$SRC_TGZ");; + cabal configure --enable-tests --enable-benchmarks -v2 --ghc-options="-O0 -Werror" + cabal build + cabal check || [ "$CABALVER" == "1.16" ] + cabal test + cabal sdist + cabal copy + SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && \ + (cd dist && cabal install --force-reinstalls "$SRC_TGZ") + ;; esac