mirror of
https://github.com/composewell/streamly.git
synced 2024-10-27 20:18:55 +03:00
d65f2b4045
Closes #684
243 lines
10 KiB
YAML
243 lines
10 KiB
YAML
# packcheck-0.4.2
|
|
# You can use any of the options supported by packcheck as environment
|
|
# variables here. See https://github.com/harendra-kumar/packcheck for all
|
|
# options and their explanation.
|
|
|
|
if: branch = master
|
|
|
|
# dist: trusty
|
|
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
|
|
- ENABLE_INSTALL=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/harendra-kumar/packcheck"
|
|
- PACKCHECK_GITHUB_COMMIT="563702bd02c41343dcd3dfcfef0845ca428a9240"
|
|
|
|
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]}}
|
|
|
|
# With coverage
|
|
- name: "GHC 8.10.1+inspection+Werror+coverage"
|
|
env: BUILD=cabal-v2 COVERALLS_OPTIONS=" --repo-token=9ezA743hCAcmzX3Ic273LhNlIXVdl7D1l --coverage-mode=StrictlyFullLines --exclude-dir=test" CABAL_PROJECT="cabal.project.coverage" GHC_OPTIONS=""
|
|
addons: {apt: {packages: [cabal-install-3.2,ghc-8.10.1], sources: [hvr-ghc]}}
|
|
|
|
# Built on github ci/on travis-stack-linux/on travis-stack-macOS
|
|
#- env: BUILD=cabal-v2 GHCVER=8.8.4 GHC_OPTIONS="" CABAL_BUILD_OPTIONS=""
|
|
# addons: {apt: {packages: [cabal-install-3.2,ghc-8.8.4], sources: [hvr-ghc]}}
|
|
# os: linux
|
|
# arch: amd64
|
|
|
|
# Built on github ci
|
|
#- env: BUILD=cabal-v2 GHCVER=8.6.5 GHC_OPTIONS="" CABAL_BUILD_OPTIONS=""
|
|
# addons: {apt: {packages: [cabal-install-3.2,ghc-8.6.5], sources: [hvr-ghc]}}
|
|
# os: linux
|
|
# arch: amd64
|
|
|
|
- name: "GHC 8.4.4+x86+debug"
|
|
env: BUILD=cabal-v2 GHCVER=8.4.4 GHC_OPTIONS="" CABAL_BUILD_OPTIONS="--flag debug"
|
|
addons: {apt: {packages: [cabal-install-3.2,ghc-8.4.4], sources: [hvr-ghc]}}
|
|
os: linux
|
|
arch: x86
|
|
|
|
# Built on circleci
|
|
# GHC-8.2.2 hogs memory leading to out-of-memory when compiling benchmarks
|
|
#- env: BUILD=cabal-v2 GHCVER=8.2.2 GHC_OPTIONS="" DISABLE_BENCH=y
|
|
# addons: {apt: {packages: [cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}}
|
|
|
|
- name: "GHC 8.0.2"
|
|
env: BUILD=cabal-v2 GHCVER=8.0.2 GHC_OPTIONS=""
|
|
addons: {apt: {packages: [cabal-install-3.2,ghc-8.0.2], sources: [hvr-ghc]}}
|
|
os: linux
|
|
arch: amd64
|
|
|
|
# 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]}}
|
|
|
|
# --------------------------------------------------------------------------
|
|
# GHCJS cabal builds
|
|
# --------------------------------------------------------------------------
|
|
|
|
# Use CABAL_BUILD_OPTIONS to pass any options to cabal e.g. project-file
|
|
# DISABLE_SDIST_BUILD is set because of a cabal issue. 'cabal info'
|
|
# unnecessarily requires "ghc".
|
|
- name: "GHCJS 8.4+no-test+no-docs"
|
|
env: BUILD=cabal-v2 ENABLE_GHCJS=y DISABLE_TEST=y ENABLE_INSTALL= 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-3.2,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
|
|
# addons: {apt: {packages: [cabal-install-1.24], sources: [hvr-ghc]}}
|
|
|
|
- name: "GHC 8.8+stack lts-16.12"
|
|
env: BUILD=stack RESOLVER=lts-16.12 GHCVER=8.8 SDIST_OPTIONS="--ignore-check"
|
|
addons: {apt: {packages: [cabal-install-3.2], sources: [hvr-ghc]}}
|
|
os: linux
|
|
arch: amd64
|
|
|
|
#- env: BUILD=stack RESOLVER=lts-12 GHCVER=8.4
|
|
# addons: {apt: {packages: [cabal-install-2.4], sources: [hvr-ghc]}}
|
|
|
|
# GHC-8.2.2 hogs memory leading to out-of-memory when compiling benchmarks
|
|
# So disable the benchmarks for this build.
|
|
#- env: BUILD=stack GHCVER=8.2.2 RESOLVER=lts-11 GHC_OPTIONS="" DISABLE_SDIST_BUILD=y DISABLE_DIST_CHECKS=y DISABLE_BENCH=y
|
|
# addons: {apt: {packages: [cabal-install-2.4], sources: [hvr-ghc]}}
|
|
|
|
#- env: BUILD=stack RESOLVER=lts-9 GHCVER=8.0
|
|
# addons: {apt: {packages: [cabal-install-2.4], sources: [hvr-ghc]}}
|
|
|
|
#- env: BUILD=stack RESOLVER=lts-6 GHCVER=7.10
|
|
# addons: {apt: {packages: [cabal-install-2.4], 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
|
|
# --------------------------------------------------------------------------
|
|
|
|
# On OSX autoreconf is not installed therefore disable sdist build
|
|
- name: "GHC 8.8"
|
|
env: BUILD=stack RESOLVER=lts-16.12 GHCVER=8.8 GHC_OPTIONS="" DISABLE_SDIST_BUILD=y SDIST_OPTIONS="--ignore-check"
|
|
os: osx
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Lint e.g. HLINT_COMMANDS="hlint lint src; hlint lint test"
|
|
# --------------------------------------------------------------------------
|
|
|
|
- name: "hlint src"
|
|
env: BUILD=cabal-v2 HLINT_OPTIONS="lint" HLINT_TARGETS="src"
|
|
|
|
- name: "hlint test benchmarks"
|
|
env: BUILD=cabal-v2 HLINT_OPTIONS="lint" HLINT_TARGETS="test benchmarks"
|
|
|
|
# --------------------------------------------------------------------------
|
|
# Builds that are allowed to fail
|
|
# --------------------------------------------------------------------------
|
|
|
|
allow_failures:
|
|
- env: BUILD=cabal-v2 GHCVER=head GHC_OPTIONS=""
|
|
- env: BUILD=stack RESOLVER=nightly DISABLE_SDIST_BUILD=y DISABLE_DIST_CHECKS=y
|
|
- env: BUILD=cabal-v2 HLINT_OPTIONS="lint" HLINT_TARGETS="test benchmarks"
|
|
|
|
# ------------------------------------------------------------------------
|
|
# 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=/bin:/usr/bin"
|