Skip to content

Instantly share code, notes, and snippets.

@tonyday567
Created December 12, 2018 11:02
Show Gist options
  • Select an option

  • Save tonyday567/e6cf9f3e2010ca73b511bb175c4f7d98 to your computer and use it in GitHub Desktop.

Select an option

Save tonyday567/e6cf9f3e2010ca73b511bb175c4f7d98 to your computer and use it in GitHub Desktop.

Revisions

  1. tonyday567 created this gist Dec 12, 2018.
    71 changes: 71 additions & 0 deletions .travis.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,71 @@
    language: haskell
    dist: trusty

    cache:
    directories:
    - $HOME/.cabal/packages
    - $HOME/.cabal/store
    - $HOME/.stack
    - $TRAVIS_BUILD_DIR/.stack-work

    cabal: "2.4"

    matrix:
    include:
    - env: BUILD=cabal
    ghc: "8.6.3"
    - env: BUILD=cabal
    ghc: "8.4.4"
    - env: BUILD=cabal
    ghc: "8.2.2"
    - env: BUILD=cabal
    ghc: "8.0.2"
    - env: BUILD=cabal
    ghc: "7.10.3"
    # --system-ghc is used to take advantage of language: haskell and save build time. If the stack resolver ghc and system-ghc become different, stack will download the right ghc
    - env: BUILD=stack ARGS="--resolver lts-12.22 --system-ghc"
    ghc: "8.4.4"
    # a -Werror build that is allowed to fail
    - env: BUILD=werror ARGS="--resolver lts-12.22 --system-ghc"
    ghc: "8.4.4"
    - env: BUILD=stack ARGS="--resolver nightly --system-ghc"
    ghc: "8.6.2"

    allow_failures:
    - env: BUILD=stack ARGS="--resolver nightly --system-ghc"
    - env: BUILD=werror ARGS="--resolver lts-12.22 --system-ghc"

    install:
    - |
    case "$BUILD" in
    cabal)
    cabal --version
    ghc --version
    ;;
    stack|werror)
    ghc --version
    PATH=$HOME/.local/bin:$PATH
    mkdir -p ~/.local/bin
    if [ `uname` = "Darwin" ]
    then
    travis_retry curl --insecure -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
    else
    travis_retry curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
    fi
    ;;
    esac
    script:
    - |
    case "$BUILD" in
    cabal)
    cabal v2-update
    cabal v2-build
    cabal v2-test --enable-test
    ;;
    stack)
    stack --no-terminal $ARGS test --haddock --no-haddock-deps
    ;;
    werror)
    stack --no-terminal $ARGS test --haddock --no-haddock-deps --ghc-options -Werror --ghc-options -Wcompat --ghc-options -Wincomplete-record-updates --ghc-options -Wincomplete-uni-patterns --ghc-options -Wredundant-constraints
    ;;
    esac