update CI config files with new packcheck version

This commit is contained in:
Harendra Kumar 2019-06-16 19:04:44 +05:30
parent fae4b720a0
commit cce586ad12
3 changed files with 143 additions and 59 deletions

View File

@ -1,7 +1,7 @@
version: 2
#-----------------------------------------------------------------------------
# packcheck-0.3.1
# packcheck-0.4.2
# Packcheck global environment variables
#-----------------------------------------------------------------------------
@ -44,7 +44,7 @@ env: &env
# ------------------------------------------------------------------------
# Where to find the required tools
# ------------------------------------------------------------------------
#PATH: /bin:/usr/bin
PATH: /opt/ghc/bin:/sbin:/usr/sbin:/bin:/usr/bin
#TOOLS_DIR: /opt
# ------------------------------------------------------------------------
@ -54,12 +54,11 @@ env: &env
# 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
PACKCHECK: "./packcheck.sh"
# If you have not committed packcheck.sh in your repo at PACKCHECK
# then it is automatically pulled from this URL.
PACKCHECK_GITHUB_URL: "https://raw.githubusercontent.com/harendra-kumar/packcheck"
PACKCHECK_GITHUB_COMMIT: "42d90d6b93bee7741e577d0e3615754165c648f8"
PACKCHECK_CMD: "$PACKCHECK_LOCAL_PATH $BUILD PATH=/opt/ghc/bin:$PATH"
PACKCHECK_GITHUB_COMMIT: "d11a8a68fef00f4932bbedd6134950495ccd7420"
docker:
- image: debian:stretch
@ -70,15 +69,22 @@ env: &env
preinstall: &preinstall
run: |
apt-get update
# required for https/cache save and restore
apt-get install -y ca-certificates
# For ghc and cabal-install packages from haskell.org
# gnupg is required for apt-key to work
apt-get install -y gnupg
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA3CBA3FFE22B574
echo "deb http://downloads.haskell.org/debian stretch main" >> /etc/apt/sources.list
apt-get update
# required for packcheck
apt-get install -y curl
# required for apt-key
apt-get install -y gnupg
# required for cache save and restore
apt-get install -y ca-certificates
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA3CBA3FFE22B574
apt-get update
# required for outbound https for stack and for stack setup
apt-get install -y netbase xz-utils make
# 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
@ -87,8 +93,8 @@ preinstall: &preinstall
# 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
if test ! -e "$PACKCHECK"; then $CURL -sL -o "$PACKCHECK" $PACKCHECK_URL; fi;
chmod +x $PACKCHECK
restore: &restore
# Needs to happen after installing ca-certificates
@ -97,19 +103,92 @@ restore: &restore
save: &save
save_cache:
key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
paths:
- ~/.cabal
- ~/.ghc
- ~/.local
- ~/.stack
key: v1-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
paths:
- ~/.cabal
- ~/.ghc
- ~/.local
- ~/.stack
#-----------------------------------------------------------------------------
# Build matrix
#-----------------------------------------------------------------------------
jobs:
coveralls:
cabal-ghc-8.6.5:
<<: *env
steps:
- checkout
- *preinstall
- *restore
- run: |
apt-get install -y ghc-8.6.3
apt-get install -y cabal-install-2.4
bash -c "$PACKCHECK cabal-v2"
- *save
cabal-ghc-8.4.4:
<<: *env
steps:
- checkout
- *preinstall
- *restore
- run: |
apt-get install -y ghc-8.4.4
apt-get install -y cabal-install-2.4
bash -c "$PACKCHECK cabal-v2"
- *save
cabal-ghc-8.2.2:
<<: *env
steps:
- checkout
- *preinstall
- *restore
- run: |
apt-get install -y ghc-8.2.2
apt-get install -y cabal-install-2.4
bash -c "$PACKCHECK cabal-v2"
- *save
cabal-ghc-8.0.2:
<<: *env
steps:
- checkout
- *preinstall
- *restore
- run: |
apt-get install -y ghc-8.0.2
apt-get install -y cabal-install-2.4
bash -c "$PACKCHECK cabal-v2"
- *save
cabal-ghc-7.10.3:
<<: *env
steps:
- checkout
- *preinstall
- *restore
- run: |
apt-get install -y ghc-7.10.3
apt-get install -y cabal-install-2.4
bash -c "$PACKCHECK cabal-v2"
- *save
stack-ghc-8.4:
<<: *env
steps:
- checkout
- *preinstall
- *restore
- run: |
bash -c "$PACKCHECK stack RESOLVER=lts-12"
- *save
stack-ghc-8.2:
<<: *env
steps:
- checkout
- *preinstall
- *restore
- run: |
bash -c "$PACKCHECK stack RESOLVER=lts-11"
- *save
coveralls-ghc-8.2.2:
<<: *env
steps:
- checkout
@ -126,11 +205,18 @@ jobs:
# required by hpc-coveralls
apt-get install -y libcurl4-gnutls-dev
apt-get install -y git
bash -c "$PACKCHECK_CMD"
bash -c "$PACKCHECK cabal-v1"
- *save
workflows:
version: 2
build:
jobs:
- coveralls
#- cabal-ghc-8.6.5
#- cabal-ghc-8.4.4
#- cabal-ghc-8.2.2
#- cabal-ghc-8.0.2
#- cabal-ghc-7.10.3
#- stack-ghc-8.4
#- stack-ghc-8.2
- coveralls-ghc-8.2.2

View File

@ -1,4 +1,4 @@
# packcheck-0.4.0
# 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.
@ -59,7 +59,7 @@ env:
# 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="42d90d6b93bee7741e577d0e3615754165c648f8"
- PACKCHECK_GITHUB_COMMIT="d11a8a68fef00f4932bbedd6134950495ccd7420"
notifications:
email:
@ -77,47 +77,40 @@ matrix:
include:
# --------------------------------------------------------------------------
# (Linux) cabal builds (BUILD=cabal, BUILD=cabal-new). Common envvars are:
# CABAL_CONFIGURE_OPTIONS (cabal), CABAL_NEWBUILD_OPTIONS (cabal-new)
# (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-new GHCVER=head
#- env: BUILD=cabal-v2 GHCVER=head
# addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
- env: BUILD=cabal-new GHCVER=8.6.5 GHC_OPTIONS="" CABAL_NEWBUILD_OPTIONS="--flags streamk"
- env: BUILD=cabal-v2 GHCVER=8.6.5 GHC_OPTIONS="" CABAL_BUILD_OPTIONS="--flags streamk"
addons: {apt: {packages: [cabal-install-head,ghc-8.6.5], sources: [hvr-ghc]}}
#- env: BUILD=cabal-new GHCVER=8.6.5 GHC_OPTIONS="" CABAL_NEWBUILD_OPTIONS="--flags examples-sdl"
# addons: {apt: {packages: [cabal-install-head,ghc-8.6.4,libsdl1.2-dev], sources: [hvr-ghc]}}
- env: BUILD=cabal-new GHC_OPTIONS="" GHCVER=8.4.4
- env: BUILD=cabal-v2 GHC_OPTIONS="" GHCVER=8.4.4
addons: {apt: {packages: [cabal-install-head,ghc-8.4.4], sources: [hvr-ghc]}}
#- env: BUILD=cabal-new GHCVER=8.2.2
# addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2], sources: [hvr-ghc]}}
#- env: BUILD=cabal-v2 GHCVER=8.2.2
# addons: {apt: {packages: [cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}}
# Disable warnings because COMPLETE pragma is not available in this GHC
# version
- env: BUILD=cabal-new GHCVER=8.0.2 GHC_OPTIONS="" CABAL_NEWBUILD_OPTIONS="--flags examples-sdl"
- env: BUILD=cabal-v2 GHCVER=8.0.2 GHC_OPTIONS="" CABAL_BUILD_OPTIONS="--flags examples-sdl"
addons: {apt: {packages: [cabal-install-2.4,ghc-8.0.2,libsdl1.2-dev], sources: [hvr-ghc]}}
# For 7.10.3 we disable -Werror because of some bogus SPECIALIZE pragma
# warnings.
- env: BUILD=cabal-new GHCVER=7.10.3 GHC_OPTIONS="" CABAL_NEWBUILD_OPTIONS="--flags examples-sdl"
- env: BUILD=cabal-v2 GHCVER=7.10.3 GHC_OPTIONS="" CABAL_BUILD_OPTIONS="--flags examples-sdl"
addons: {apt: {packages: [cabal-install-2.4,ghc-7.10.3,libsdl1.2-dev], sources: [hvr-ghc]}}
# You can specify build flags like this:
#- env: BUILD=cabal-new CABAL_NEWBUILD_OPTIONS="--flags=dev"
#- 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_NEWBUILD_OPTIONS to pass any options to cabal e.g. project-file
# 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".
- env: BUILD=cabal-new ENABLE_GHCJS=y ENABLE_INSTALL= DISABLE_SDIST_BUILD=y
- env: BUILD=cabal-v2 ENABLE_GHCJS=y ENABLE_INSTALL= DISABLE_SDIST_BUILD=y
addons:
apt:
sources:
@ -131,6 +124,10 @@ matrix:
# (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]}}
@ -146,15 +143,11 @@ matrix:
- 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]}}
# Disable warnings because COMPLETE pragma is not available in this GHC
# version
#- env: BUILD=stack RESOLVER=lts-9 GHCVER=8.0.2 GHC_OPTIONS="" STACK_YAML=stack-8.0.yaml DISABLE_SDIST_BUILD=y DISABLE_DIST_CHECKS=y STACK_BUILD_OPTIONS="--flag streamly:examples-sdl"
# addons: {apt: {packages: [cabal-install-2.4,libsdl1.2-dev], sources: [hvr-ghc]}}
#- env: BUILD=stack RESOLVER=lts-9 GHCVER=8.0
# addons: {apt: {packages: [cabal-install-2.4], sources: [hvr-ghc]}}
# For 7.10.3 we disable -Werror because of some bogus SPECIALIZE pragma
# warnings.
#- env: BUILD=stack RESOLVER=lts-6 GHCVER=7.10.3 GHC_OPTIONS="" STACK_YAML=stack-7.10.yaml DISABLE_SDIST_BUILD=y DISABLE_DIST_CHECKS=y STACK_BUILD_OPTIONS="--flag streamly:examples-sdl"
# addons: {apt: {packages: [cabal-install-2.4,libsdl1.2-dev], 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
@ -168,7 +161,7 @@ matrix:
# GHC 8.6 cabal build using stack!
# On OSX autoreconf is not installed therefore disable sdist build
- env: BUILD=cabal-new RESOLVER=lts-13 GHCVER=8.6 GHC_OPTIONS="" DISABLE_SDIST_BUILD=y
- env: BUILD=cabal-v2 RESOLVER=lts-13 GHCVER=8.6 GHC_OPTIONS="" DISABLE_SDIST_BUILD=y
os: osx
# GHC 8.4/stack
@ -185,22 +178,22 @@ matrix:
# 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:
# * Works only with BUILD=cabal
# * Works only with BUILD=cabal-v1
# * Does not work for multi-package repos
# * hpc-coveralls does not build with Cabal-2.2/GHC-8.4.3. The workaround is
# to have a prebuilt hpc-coveralls binary installed on the build machine
# and then you can use any version of ghc.
# --------------------------------------------------------------------------
#- env: BUILD=cabal COVERALLS_OPTIONS="--coverage-mode=StrictlyFullLines --exclude-dir=test test"
# addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2], sources: [hvr-ghc]}}
#- env: BUILD=cabal-v1 COVERALLS_OPTIONS="--coverage-mode=StrictlyFullLines --exclude-dir=test test"
# addons: {apt: {packages: [cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}}
# --------------------------------------------------------------------------
# Builds that are allowed to fail
# --------------------------------------------------------------------------
allow_failures:
- env: BUILD=cabal-new GHCVER=head GHC_OPTIONS=""
- env: BUILD=cabal-v2 GHCVER=head GHC_OPTIONS=""
- env: BUILD=stack RESOLVER=nightly DISABLE_SDIST_BUILD=y DISABLE_DIST_CHECKS=y
- env: BUILD=stack RESOLVER=lts-13 HLINT_COMMANDS="hlint lint ."

View File

@ -1,3 +1,4 @@
# 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.
@ -19,8 +20,8 @@ environment:
# DISABLE_TEST: "y"
# DISABLE_BENCH: "y"
# DISABLE_DOCS: "y"
DISABLE_DIST_CHECKS: "y"
DISABLE_SDIST_BUILD: "y"
DISABLE_DIST_CHECKS: "y"
ENABLE_INSTALL: "y"
# ------------------------------------------------------------------------
@ -58,7 +59,11 @@ environment:
# 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: "42d90d6b93bee7741e577d0e3615754165c648f8"
PACKCHECK_GITHUB_COMMIT: "d11a8a68fef00f4932bbedd6134950495ccd7420"
# Override the temp directory to avoid sed escaping issues
# See https://github.com/haskell/cabal/issues/5386
TMP: "c:\\tmp"
cache:
- "%STACK_ROOT%"