From 5d49a85f40b44b5fb9b4136924edd71615948f7c Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Fri, 2 Feb 2018 00:35:21 +0200 Subject: [PATCH] Travis update --- .travis.yml | 100 +++++++++++++++++++++++----------------------------- 1 file changed, 44 insertions(+), 56 deletions(-) diff --git a/.travis.yml b/.travis.yml index ab790d0b..224aeb3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ # Use new container infrastructure to enable caching sudo: false -# Choose a lightweight base image; we provide our own build tools. +# Do not choose a language; we provide our own build tools. language: generic # Caching so the next build will be fast too. @@ -35,27 +35,12 @@ matrix: include: # 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.0.4 CABALVER=1.16 HAPPYVER=1.19.5 ALEXVER=3.1.7 - # compiler: ": #GHC 7.0.4" - # addons: {apt: {packages: [cabal-install-1.16,ghc-7.0.4,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} - #- env: BUILD=cabal GHCVER=7.2.2 CABALVER=1.16 HAPPYVER=1.19.5 ALEXVER=3.1.7 - # compiler: ": #GHC 7.2.2" - # addons: {apt: {packages: [cabal-install-1.16,ghc-7.2.2,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} - #- env: BUILD=cabal GHCVER=7.4.2 CABALVER=1.16 HAPPYVER=1.19.5 ALEXVER=3.1.7 - # compiler: ": #GHC 7.4.2" - # addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} - #- env: BUILD=cabal GHCVER=7.6.3 CABALVER=1.16 HAPPYVER=1.19.5 ALEXVER=3.1.7 - # compiler: ": #GHC 7.6.3" - # addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} - - env: BUILD=cabal GHCVER=7.8.4 CABALVER=1.18 HAPPYVER=1.19.5 ALEXVER=3.1.7 - compiler: ": #GHC 7.8.4" - addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} - - env: BUILD=cabal GHCVER=7.10.3 CABALVER=1.22 HAPPYVER=1.19.5 ALEXVER=3.1.7 - compiler: ": #GHC 7.10.3" - addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} - env: BUILD=cabal GHCVER=8.0.2 CABALVER=1.24 HAPPYVER=1.19.5 ALEXVER=3.1.7 compiler: ": #GHC 8.0.2" addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} + - env: BUILD=cabal GHCVER=8.2.2 CABALVER=2.0 HAPPYVER=1.19.5 ALEXVER=3.1.7 + compiler: ": #GHC 8.2.2" + addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}} # Build with the newest GHC and cabal-install. This is an accepted failure, # see below. @@ -69,32 +54,40 @@ matrix: compiler: ": #stack default" addons: {apt: {packages: [libgmp-dev]}} - - env: BUILD=stack ARGS="--resolver lts-6" - compiler: ": #stack 7.10.3" + - env: BUILD=stack ARGS="--resolver lts-7" + compiler: ": #stack 8.0.1" addons: {apt: {packages: [libgmp-dev]}} - - env: BUILD=stack ARGS="--resolver lts-8" + - env: BUILD=stack ARGS="--resolver lts-9" compiler: ": #stack 8.0.2" addons: {apt: {packages: [libgmp-dev]}} + - env: BUILD=stack ARGS="--resolver lts-10" + compiler: ": #stack 8.2.2" + addons: {apt: {packages: [libgmp-dev]}} + # 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 + # Build on macOS in addition to Linux - env: BUILD=stack ARGS="" compiler: ": #stack default osx" os: osx - - env: BUILD=stack ARGS="--resolver lts-6" - compiler: ": #stack 7.10.3 osx" + - env: BUILD=stack ARGS="--resolver lts-7" + compiler: ": #stack 8.0.1 osx" os: osx - - env: BUILD=stack ARGS="--resolver lts-8" + - env: BUILD=stack ARGS="--resolver lts-9" compiler: ": #stack 8.0.2 osx" os: osx + - env: BUILD=stack ARGS="--resolver lts-10" + compiler: ": #stack 8.2.2 osx" + os: osx + - env: BUILD=stack ARGS="--resolver nightly" compiler: ": #stack nightly osx" os: osx @@ -102,8 +95,6 @@ matrix: allow_failures: - env: BUILD=cabal GHCVER=head CABALVER=head HAPPYVER=1.19.5 ALEXVER=3.1.7 - env: BUILD=stack ARGS="--resolver nightly" - - env: BUILD=cabal GHCVER=7.8.4 CABALVER=1.18 HAPPYVER=1.19.5 ALEXVER=3.1.7 - - env: BUILD=cabal GHCVER=7.10.3 CABALVER=1.22 HAPPYVER=1.19.5 ALEXVER=3.1.7 before_install: # Using compiler above sets CC to an invalid value, so unset it @@ -139,11 +130,28 @@ install: - if [ -f configure.ac ]; then autoreconf -i; fi - | set -ex - if [ "$ARGS" = "--resolver nightly" ] - then - stack --install-ghc $ARGS build cabal-install - stack --install-ghc $ARGS solver --update-config - fi + case "$BUILD" in + stack) + # Add in extra-deps for older snapshots, as necessary + stack --no-terminal --install-ghc $ARGS test --bench --dry-run || ( \ + stack --no-terminal $ARGS build cabal-install && \ + stack --no-terminal $ARGS solver --update-config) + + # Build the dependencies + stack --no-terminal --install-ghc $ARGS test --bench --only-dependencies + ;; + cabal) + cabal --version + travis_retry cabal update + + # Get the list of packages from the stack.yaml file. Note that + # this will also implicitly run hpack as necessary to generate + # the .cabal files needed by cabal-install. + PACKAGES=$(stack --install-ghc query locals | grep '^ *path' | sed 's@^ *path:@@') + + cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES + ;; + esac set +ex script: @@ -151,30 +159,9 @@ script: set -ex case "$BUILD" in stack) - if [ `uname` = "Darwin" ] - then - # Build dependencies with -O0 as well - echo "apply-ghc-options: everything" >> stack.yaml - - # Avoid OOM for building Cabal - stack --install-ghc --no-terminal $ARGS build Cabal --fast - - # Use slightly less intensive options on OS X due to Travis timeouts - stack --install-ghc --no-terminal $ARGS test --fast - else - # Avoid OOM for building Cabal - stack --install-ghc --no-terminal $ARGS build Cabal --fast - - stack --install-ghc --no-terminal $ARGS test --bench --no-run-benchmarks --haddock --no-haddock-deps --pedantic - fi + stack --no-terminal $ARGS test --bench --no-run-benchmarks --haddock --no-haddock-deps ;; cabal) - cabal --version - travis_retry cabal update - - # Get the list of packages from the stack.yaml file - PACKAGES=$(stack --install-ghc query locals | grep '^ *path' | sed 's@^ *path:@@') - cabal install --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES ORIGDIR=$(pwd) @@ -188,8 +175,9 @@ script: cd dist tar zxfv "$SRC_TGZ" cd "$PKGVER" - cabal configure --enable-tests + cabal configure --enable-tests --ghc-options -O0 cabal build + cabal test cd $ORIGDIR done ;;