packages feed

unicode-transforms-0.3.7: .travis.yml

# packcheck-0.4.3
# You can use any of the options supported by packcheck as environment
# variables here.  See https://github.com/composewell/packcheck for all
# options and their explanation.

#dist: bionic
# llvm-toolchain-xenial-9 repo is xenial specific
dist: xenial
env:
  # ------------------------------------------------------------------------
  # Global options, you can use these per build as well
  # ------------------------------------------------------------------------
  global:
  # ------------------------------------------------------------------------
  # Common options
  # ------------------------------------------------------------------------
  # - GHC_OPTIONS="-Werror"
  - CABAL_REINIT_CONFIG=y
  - LC_ALL=C.UTF-8

  # ------------------------------------------------------------------------
  # What to build
  # ------------------------------------------------------------------------
  # - DISABLE_TEST=y
  # - DISABLE_BENCH=y
  # - DISABLE_DOCS=y
  # - DISABLE_SDIST_BUILD=y
  # - DISABLE_DIST_CHECKS=y

  # ------------------------------------------------------------------------
  # stack options
  # ------------------------------------------------------------------------
  # Note requiring a specific version of stack using STACKVER may fail due to
  # github API limit while checking and upgrading/downgrading to the specific
  # version.
  #- STACKVER="1.6.5"
  - STACK_UPGRADE="y"

  # ------------------------------------------------------------------------
  # cabal options
  # ------------------------------------------------------------------------
  - CABAL_CHECK_RELAX=y
  - CABAL_NO_SANDBOX=y
  - CABAL_HACKAGE_MIRROR=hackage.haskell.org:http://hackage.fpcomplete.com

  # ------------------------------------------------------------------------
  # Where to find the required tools
  # ------------------------------------------------------------------------
  - PATH=/bin:/usr/bin
  - TOOLS_DIR=/opt

  # ------------------------------------------------------------------------
  # Location of packcheck.sh (the shell script invoked to perform CI tests ).
  # ------------------------------------------------------------------------
  # You can either commit the packcheck.sh script at this path in your repo or
  # you can use it by specifying the PACKCHECK_REPO_URL option below in which
  # case it will be automatically copied from the packcheck repo to this path
  # during CI tests. In any case it is finally invoked from this path.
  - PACKCHECK_LOCAL_PATH="./packcheck.sh"
  # If you have not committed packcheck.sh in your repo at PACKCHECK_LOCAL_PATH
  # then it is automatically pulled from this URL.
  - PACKCHECK_GITHUB_URL="https://raw.githubusercontent.com/composewell/packcheck"
  - PACKCHECK_GITHUB_COMMIT="f17ef1f60cb926230a082c4a3089c14c35db0e1f"

notifications:
  email:
    on_success: change
    on_failure: always

# This matrix has total of 6 builds enabled, we try to cover last three major
# GHC versions, stack, cabal, Linux and OSX with minimum number of builds
# possible. You can uncomment other disabled builds or comment out existing
# ones to your taste.
#
# We pre-install the cabal-install package to not incur the penalty of building
# it the first time in cached builds or every time in uncached builds.
matrix:
  include:

  # --------------------------------------------------------------------------
  # (Linux) cabal builds (BUILD=cabal-v1, BUILD=cabal-v2). Common envvars are:
  # CABAL_CONFIGURE_OPTIONS (cabal-v1), CABAL_BUILD_OPTIONS (cabal-v2)
  # --------------------------------------------------------------------------

  #- env: BUILD=cabal-v2 GHCVER=head
  #  addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}

  #- env: BUILD=cabal-v2 GHCVER=8.10.1 CABAL_BUILD_OPTIONS="--flag has-icu"
  #  addons:
  #    apt:
  #      sources:
  #      - sourceline: 'ppa:hvr/ghc'
  #      packages: [libicu66,cabal-install-3.2,ghc-8.10.1]
  #  dist: focal

  - env: BUILD=cabal-v2 GHCVER=8.10.1 CABAL_BUILD_OPTIONS="--flags=has-llvm"
    addons:
      apt:
        packages:
        - llvm-9
        - cabal-install-3.2
        - ghc-8.10.1
        sources:
        - hvr-ghc
        - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main'
          key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'

  #- env: BUILD=cabal-v2 GHCVER=8.8.3
  #  addons: {apt: {packages: [cabal-install-3.2,ghc-8.8.3], sources: [hvr-ghc]}}

  - env: BUILD=cabal-v2 GHCVER=8.6.5
    addons: {apt: {packages: [cabal-install-3.2,ghc-8.6.5], sources: [hvr-ghc]}}

  - env: BUILD=cabal-v2 GHCVER=8.4.4
    addons: {apt: {packages: [cabal-install-3.2,ghc-8.4.4], sources: [hvr-ghc]}}

  - env: BUILD=cabal-v2 GHCVER=8.2.2
    addons: {apt: {packages: [cabal-install-3.2,ghc-8.2.2], sources: [hvr-ghc]}}

  - env: BUILD=cabal-v2 GHCVER=8.0.2
    addons: {apt: {packages: [cabal-install-3.2,ghc-8.0.2], sources: [hvr-ghc]}}

  - env: BUILD=cabal-v2 GHCVER=7.10.3
    addons: {apt: {packages: [cabal-install-3.2,ghc-7.10.3], sources: [hvr-ghc]}}

  # You can specify build flags like this:
  #- env: BUILD=cabal-v2 CABAL_BUILD_OPTIONS="--flags=dev"
  #  addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}

  # You can use a cabal project file to specify flags like -Werror on per
  # package basis.
  #- env: BUILD=cabal-v2 CABAL_PROJECT=cabal.project.ci
  #  addons: {apt: {packages: [cabal-install-3.2,ghc-8.6.5], sources: [hvr-ghc]}}

  # --------------------------------------------------------------------------
  # GHCJS cabal builds
  # --------------------------------------------------------------------------

  # Use CABAL_BUILD_OPTIONS to pass any options to cabal e.g. project-file
  # - env: BUILD=cabal-v2 ENABLE_GHCJS=y CABAL_BUILD_OPTIONS="" DISABLE_DOCS=y DISABLE_SDIST_BUILD=y
  #   addons:
  #     apt:
  #       sources:
  #       - hvr-ghc
  #       - sourceline: 'ppa:hvr/ghcjs'
  #       - sourceline: 'deb https://deb.nodesource.com/node_11.x xenial main'
  #         key_url: 'https://deb.nodesource.com/gpgkey/nodesource.gpg.key'
  #       packages: [cabal-install-2.4,ghcjs-8.4]

  # --------------------------------------------------------------------------
  # (Linux) stack builds (BUILD=stack). Some common envvars for stack builds
  # are: STACK_YAML, STACK_OPTIONS, STACK_BUILD_OPTIONS
  # --------------------------------------------------------------------------
  #
  # NOTE: cabal-install is required for some of the packcheck options to work.
  # We just install it so that packcheck does not build it from source
  # otherwise.

  #- env: BUILD=stack RESOLVER=nightly
  - env: BUILD=stack RESOLVER=lts-15 GHCVER=8.8 GHC_OPTIONS=-Werror
    addons: {apt: {packages: [cabal-install-3.2], sources: [hvr-ghc]}}

  #- env: BUILD=stack RESOLVER=lts-14 GHCVER=8.6
  #  addons: {apt: {packages: [cabal-install-3.2], sources: [hvr-ghc]}}

  #- env: BUILD=stack RESOLVER=lts-12 GHCVER=8.4
  #  addons: {apt: {packages: [cabal-install-3.2], sources: [hvr-ghc]}}

  #- env: BUILD=stack RESOLVER=lts-6 GHCVER=7.10 STACK_YAML=stack-7.10.yaml
  #  addons: {apt: {packages: [cabal-install-3.2], sources: [hvr-ghc]}}

  # You can keep a STACK_YAML file at any path location
  #- env: BUILD=stack STACK_YAML=.ci/stack-8.0.yaml

  # You can specify build flags like this:
  #- env: BUILD=stack RESOLVER=lts-12 STACK_BUILD_OPTIONS="--flag packcheck:dev"

  # --------------------------------------------------------------------------
  # OS X builds
  # --------------------------------------------------------------------------

  # GHC cabal build using stack!
  #- env: BUILD=cabal-v2 RESOLVER=lts-15 GHCVER=8.8
  - env: BUILD=stack RESOLVER=lts-15 GHCVER=8.8 DISABLE_SDIST_BUILD=y
    os: osx

  #- env: BUILD=stack RESOLVER=lts-14 GHCVER=8.6
  #  os: osx

  # --------------------------------------------------------------------------
  # Lint e.g. HLINT_COMMANDS="hlint lint src; hlint lint test"
  # --------------------------------------------------------------------------

  #- env: BUILD=stack RESOLVER=lts-15 HLINT_COMMANDS="hlint lint ."

  # --------------------------------------------------------------------------
  # Build and send coverage report to coveralls.io using hpc-coveralls.  Add
  # your project to coveralls.io first, for available options see hpc-coveralls
  # docs. CAVEATS:
  # * Does not work for multi-package repos
  # --------------------------------------------------------------------------

  - env: BUILD=cabal-v2 CABAL_PROJECT=cabal.project.coveralls COVERALLS_OPTIONS="--coverage-mode=StrictlyFullLines --exclude-dir=test ucd quickcheck extras"
    addons: {apt: {packages: [cabal-install-3.2,ghc-8.8.3], sources: [hvr-ghc]}}

  # --------------------------------------------------------------------------
  # Builds that are allowed to fail
  # --------------------------------------------------------------------------

  allow_failures:
  - env: BUILD=cabal-v2 GHCVER=head
  - env: BUILD=stack RESOLVER=nightly
  - env: BUILD=stack RESOLVER=lts-15 HLINT_COMMANDS="hlint lint ."

# ------------------------------------------------------------------------
#  Settings beyond this point are advanced and normally not tweaked
# ------------------------------------------------------------------------

language: generic
sudo: false
cache:
  directories:
  - $HOME/.cabal
  - $HOME/.ghc
  - $HOME/.ghcjs
  - $HOME/.local
  - $HOME/.stack
install: true

script:
  - |
    # If a custom stack-yaml is specified, replace the default with that
    if test -e "$STACK_YAML"; then rm -f stack.yaml && ln -sv $STACK_YAML stack.yaml; else true; fi
    unset STACK_YAML

    # Get packcheck if needed
    CURL=$(which curl)
    PACKCHECK_URL=${PACKCHECK_GITHUB_URL}/${PACKCHECK_GITHUB_COMMIT}/packcheck.sh
    if test ! -e "$PACKCHECK_LOCAL_PATH"; then $CURL -sL -o "$PACKCHECK_LOCAL_PATH" $PACKCHECK_URL; fi;
    chmod +x $PACKCHECK_LOCAL_PATH

    # This script is governed by various PACKCHECK envvars that are set above.
    # In addition, hpc-coveralls needs TRAVIS, TRAVIS_JOB_ID variables set by
    # the travis CI environment.
  - bash -c "$PACKCHECK_LOCAL_PATH $BUILD PATH=/usr/lib/llvm-9/bin/:/bin:/usr/bin"