mirror of
https://github.com/composewell/streamly.git
synced 2024-11-11 00:53:46 +03:00
164 lines
7.1 KiB
YAML
164 lines
7.1 KiB
YAML
# See https://github.com/harendra-kumar/packcheck for all options and their
|
|
# explanation.
|
|
env:
|
|
global:
|
|
# ------------------------------------------------------------------------
|
|
# Global options used for all CI tests
|
|
# ------------------------------------------------------------------------
|
|
- GHC_OPTIONS="-Werror"
|
|
# ------------------------------------------------------------------------
|
|
# Options for builds that need stack
|
|
# ------------------------------------------------------------------------
|
|
#- STACKVER="1.6.5"
|
|
- STACK_UPGRADE="y"
|
|
# ------------------------------------------------------------------------
|
|
# Other options: Normally you would not need to customize these
|
|
# ------------------------------------------------------------------------
|
|
- CABAL_REINIT_CONFIG=y
|
|
- CABAL_CHECK_RELAX=y
|
|
- CABAL_NO_SANDBOX=y
|
|
- CABAL_HACKAGE_MIRROR=hackage.haskell.org:http://hackage.fpcomplete.com
|
|
- TEST_INSTALL=y
|
|
- PATH=/bin:/usr/bin
|
|
- LC_ALL=C.UTF-8
|
|
# ------------------------------------------------------------------------
|
|
# 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/harendra-kumar/packcheck"
|
|
- PACKCHECK_GITHUB_COMMIT="da9d6da3d18d6250c06617817f0879324c75c224"
|
|
|
|
notifications:
|
|
email: false
|
|
|
|
# This matrix has total 11 builds enabled, 4 builds each (3 last major compiler
|
|
# versions and head) for stack and cabal, 2 OSX builds (stack and cabal for
|
|
# latest compiler version), and one hlint build. You may want to comment out
|
|
# some of the builds to be lighter on the CI infrastructure.
|
|
#
|
|
# 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) stack builds
|
|
# --------------------------------------------------------------------------
|
|
|
|
- env: BUILD=stack CABALVER=1.22 GHCVER=7.10.3 RESOLVER=lts-6 STACK_YAML=stack-7.10.yaml STACK_BUILD_OPTIONS="--flag streamly:examples-sdl"
|
|
addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3,libsdl1.2-dev], sources: [hvr-ghc]}}
|
|
|
|
- env: BUILD=stack CABALVER=1.24 GHCVER=8.0.2 RESOLVER=lts-9 STACK_YAML=stack-8.0.yaml STACK_BUILD_OPTIONS="--flag streamly:examples-sdl"
|
|
addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2,libsdl1.2-dev], sources: [hvr-ghc]}}
|
|
|
|
- env: BUILD=stack CABALVER=2.0 GHCVER=8.2.2 RESOLVER=lts-10 STACK_BUILD_OPTIONS="--flag streamly:examples-sdl"
|
|
addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2,libsdl1.2-dev], sources: [hvr-ghc]}}
|
|
|
|
# Nightly
|
|
- env: BUILD=stack RESOLVER=nightly
|
|
|
|
# Using a custom stack-yaml config file.
|
|
#- env: BUILD=stack STACK_YAML=.ci/stack-8.0.yaml
|
|
|
|
# You can customize a stack build even without a custom stack-yaml
|
|
# using STACK_OPTIONS, STACK_BUILD_OPTIONS, GHC_OPTIONS etc.
|
|
#- env: BUILD=stack RESOLVER=lts-10.0 STACK_BUILD_OPTIONS="--flag packcheck:dev"
|
|
|
|
# --------------------------------------------------------------------------
|
|
# (Linux) cabal builds require pre-installed cabal-install and ghc
|
|
# --------------------------------------------------------------------------
|
|
|
|
#- env: BUILD=cabal CABALVER=1.22 GHCVER=7.10.3
|
|
# addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}
|
|
|
|
- env: BUILD=cabal CABALVER=1.24 GHCVER=8.0.2
|
|
addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}
|
|
|
|
#- env: BUILD=cabal CABALVER=2.0 GHCVER=8.2.2
|
|
# addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2], sources: [hvr-ghc]}}
|
|
|
|
- env: BUILD=cabal CABALVER=head GHCVER=head
|
|
addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
|
|
|
|
# --------------------------------------------------------------------------
|
|
# OS X builds
|
|
# --------------------------------------------------------------------------
|
|
|
|
# GHC 8.2.2/cabal build via stack
|
|
#- env: BUILD=cabal RESOLVER=lts-10
|
|
# os: osx
|
|
|
|
# GHC 8.2.2/stack
|
|
- env: BUILD=stack RESOLVER=lts-10
|
|
os: osx
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Lint
|
|
# --------------------------------------------------------------------------
|
|
|
|
- env: BUILD=stack RESOLVER=lts-10 HLINT_COMMANDS="hlint lint ."
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Build and send coverage report to coveralls.io using hpc-coveralls
|
|
# --------------------------------------------------------------------------
|
|
|
|
# Note COVERALLS (hpc-coveralls) works only with cabal build.
|
|
# For this to succeed you have to add your project to coveralls.io first
|
|
- env: BUILD=cabal CABALVER=2.0 GHCVER=8.2.2 COVERALLS_OPTIONS="--coverage-mode=StrictlyFullLines --exclude-dir=test test"
|
|
addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2], sources: [hvr-ghc]}}
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Builds that are allowed to fail
|
|
# --------------------------------------------------------------------------
|
|
|
|
allow_failures:
|
|
- env: BUILD=stack RESOLVER=nightly
|
|
- env: BUILD=cabal CABALVER=head GHCVER=head
|
|
- env: BUILD=stack RESOLVER=lts-10 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/.local
|
|
- $HOME/.stack
|
|
install: true
|
|
|
|
script:
|
|
- |
|
|
# When GHCVER or CABALVER env variables are specified, modify the path to
|
|
# find the binaries installed from hvr-ghc repo
|
|
add_path() { eval "test -n \"\$$1\"" && eval "PATH=/opt/$2/\"\$$1\"/bin:$PATH"; true; }
|
|
|
|
# Emit the value of the var specified as arg only when the build is cabal
|
|
cabal_env() { test "$BUILD" = cabal && echo $1; }
|
|
|
|
# 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
|
|
|
|
add_path GHCVER ghc
|
|
add_path CABALVER cabal
|
|
|
|
# In addition to PACKCHECK envvars hpc-coveralls needs TRAVIS,
|
|
# TRAVIS_JOB_ID variables set by the travis CI environment.
|
|
- bash -c "$PACKCHECK_LOCAL_PATH $BUILD"
|