Merge pull request #215 from haskell-crypto/haskell-ci
Bring CI to 2018
This commit is contained in:
commit
2d87929a4e
27
.haskell-ci
Normal file
27
.haskell-ci
Normal file
@ -0,0 +1,27 @@
|
||||
# compiler supported and their equivalent LTS
|
||||
compiler: ghc-7.8 lts-2.22
|
||||
compiler: ghc-7.10 lts-6.35
|
||||
compiler: ghc-8.0 lts-9.21
|
||||
compiler: ghc-8.2 lts-10.4
|
||||
compiler: ghc-8.4 ghc-8.4-alpha2
|
||||
|
||||
# options
|
||||
# option: alias x=y z=v
|
||||
option: testdeps extradep=QuickCheck-2.11.3 extradep=ansi-terminal-0.8.0.1 extradep=async-2.1.1.1 extradep=call-stack-0.1.0 extradep=clock-0.7.2 extradep=optparse-applicative-0.14.0.0 extradep=random-1.1 extradep=tagged-0.8.5 extradep=unbounded-delays-0.1.1.0 extradep=tasty-1.0.0.1 extradep=tasty-hunit-0.10.0.1 extradep=tasty-kat-0.0.3 extradep=tasty-quickcheck-0.9.2 extradep=ansi-wl-pprint-0.6.8.2 extradep=colour-2.3.4 extradep=tf-random-0.5 extradep=transformers-compat-0.5.1.4 extradep=primitive-0.6.3.0 allow-newer
|
||||
option: gaugedeps extradep=gauge-0.2.1
|
||||
|
||||
# builds
|
||||
build: ghc-7.8 nohaddock extradep=basement-0.0.6 extradep=foundation-0.0.19 extradep=memory-0.14.14 gaugedeps
|
||||
build: ghc-8.2 gaugedeps
|
||||
build: ghc-7.10 extradep=basement-0.0.6 extradep=foundation-0.0.19 extradep=memory-0.14.14 gaugedeps
|
||||
build: ghc-8.0 gaugedeps
|
||||
build: ghc-8.0 os=osx gaugedeps
|
||||
build: ghc-8.4 extradep=basement-0.0.6 extradep=memory-0.14.14 extradep=foundation-0.0.19 testdeps gaugedeps extradep=vector-0.12.0.1
|
||||
|
||||
# packages
|
||||
package: '.'
|
||||
|
||||
# extra builds
|
||||
hlint: allowed-failure
|
||||
weeder: allowed-failure
|
||||
coverall: false
|
||||
112
.travis.yml
112
.travis.yml
@ -1,41 +1,89 @@
|
||||
# ~*~ auto-generated by haskell-ci with config : 808ff5e84bd5804eaf848c1b7027d5fc386efd9edcf8d234090190900b1293df ~*~
|
||||
|
||||
# Use new container infrastructure to enable caching
|
||||
sudo: false
|
||||
|
||||
# Caching so the next build will be fast too.
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.ghc
|
||||
- $HOME/.stack
|
||||
- $HOME/.local
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env: CABALVER=1.18 GHCVER=7.8.4
|
||||
addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
|
||||
- env: CABALVER=1.22 GHCVER=7.10.3
|
||||
addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3],sources: [hvr-ghc]}}
|
||||
- env: CABALVER=1.24 GHCVER=8.0.2
|
||||
addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2],sources: [hvr-ghc]}}
|
||||
- env: CABALVER=2.0 GHCVER=8.2.1
|
||||
addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.1],sources: [hvr-ghc]}}
|
||||
- env: CABALVER=head GHCVER=head
|
||||
addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
|
||||
- { env: BUILD=stack RESOLVER=ghc-7.8, compiler: ghc-7.8, language: generic, addons: { apt: { packages: [ libgmp-dev ] } } }
|
||||
- { env: BUILD=stack RESOLVER=ghc-8.2, compiler: ghc-8.2, language: generic, addons: { apt: { packages: [ libgmp-dev ] } } }
|
||||
- { env: BUILD=stack RESOLVER=ghc-7.10, compiler: ghc-7.10, language: generic, addons: { apt: { packages: [ libgmp-dev ] } } }
|
||||
- { env: BUILD=stack RESOLVER=ghc-8.0, compiler: ghc-8.0, language: generic, addons: { apt: { packages: [ libgmp-dev ] } } }
|
||||
- { env: BUILD=stack RESOLVER=ghc-8.0, compiler: ghc-8.0, language: generic, addons: { apt: { packages: [ libgmp-dev ] } }, os: osx }
|
||||
- { env: BUILD=stack RESOLVER=ghc-8.4, compiler: ghc-8.4, language: generic, addons: { apt: { packages: [ libgmp-dev ] } } }
|
||||
- { env: BUILD=hlint, compiler: hlint, language: generic }
|
||||
- { env: BUILD=weeder, compiler: weeder, language: generic, addons: { apt: { packages: [ libgmp-dev ] } } }
|
||||
allow_failures:
|
||||
- env: CABALVER=head GHCVER=head
|
||||
addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}
|
||||
|
||||
before_install:
|
||||
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
|
||||
- { env: BUILD=hlint, compiler: hlint, language: generic }
|
||||
- { env: BUILD=weeder, compiler: weeder, language: generic, addons: { apt: { packages: [ libgmp-dev ] } } }
|
||||
|
||||
install:
|
||||
- cabal --version
|
||||
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
|
||||
- travis_retry cabal update
|
||||
- if [ "${RUNTEST}" != "0" ]; then cabal install --only-dependencies --enable-tests; else cabal install --only-dependencies; fi
|
||||
- export PATH=$HOME/.local/bin::$HOME/.cabal/bin:$PATH
|
||||
- mkdir -p ~/.local/bin
|
||||
- |
|
||||
case "$BUILD" in
|
||||
stack|weeder)
|
||||
if [ `uname` = "Darwin" ]
|
||||
then
|
||||
travis_retry curl --insecure -L https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
|
||||
else
|
||||
travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
|
||||
fi
|
||||
;;
|
||||
cabal)
|
||||
;;
|
||||
esac
|
||||
|
||||
script:
|
||||
- if [ "${RUNTEST}" != "0" ]; then cabal configure --enable-tests -v2; else cabal configure -v2; fi
|
||||
- cabal build
|
||||
- if [ "${RUNTEST}" != "0" ]; then cabal test; fi;
|
||||
- cabal check
|
||||
- cabal sdist
|
||||
- export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
|
||||
cd dist/;
|
||||
if [ -f "$SRC_TGZ" ]; then
|
||||
cabal install --force-reinstalls "$SRC_TGZ";
|
||||
else
|
||||
echo "expected '$SRC_TGZ' not found";
|
||||
exit 1;
|
||||
fi
|
||||
- |
|
||||
set -ex
|
||||
if [ "x${RUNTEST}" = "xfalse" ]; then exit 0; fi
|
||||
case "$BUILD" in
|
||||
stack)
|
||||
# create the build stack.yaml
|
||||
case "$RESOLVER" in
|
||||
ghc-7.8)
|
||||
echo "{ resolver: lts-2.22, packages: [ '.' ], extra-deps: [ basement-0.0.6, foundation-0.0.19, memory-0.14.14, gauge-0.2.1 ], flags: {} }" > stack.yaml
|
||||
export HADDOCK_OPTs="--no-haddock"
|
||||
;;
|
||||
ghc-8.2)
|
||||
echo "{ resolver: lts-10.4, packages: [ '.' ], extra-deps: [ gauge-0.2.1 ], flags: {} }" > stack.yaml
|
||||
export HADDOCK_OPTs="--haddock --no-haddock-deps"
|
||||
;;
|
||||
ghc-7.10)
|
||||
echo "{ resolver: lts-6.35, packages: [ '.' ], extra-deps: [ basement-0.0.6, foundation-0.0.19, memory-0.14.14, gauge-0.2.1 ], flags: {} }" > stack.yaml
|
||||
export HADDOCK_OPTs="--haddock --no-haddock-deps"
|
||||
;;
|
||||
ghc-8.0)
|
||||
echo "{ resolver: lts-9.21, packages: [ '.' ], extra-deps: [ gauge-0.2.1 ], flags: {} }" > stack.yaml
|
||||
export HADDOCK_OPTs="--haddock --no-haddock-deps"
|
||||
;;
|
||||
ghc-8.0)
|
||||
echo "{ resolver: lts-9.21, packages: [ '.' ], extra-deps: [ gauge-0.2.1 ], flags: {} }" > stack.yaml
|
||||
export HADDOCK_OPTs="--haddock --no-haddock-deps"
|
||||
;;
|
||||
ghc-8.4)
|
||||
echo "{ setup-info: { ghc: { \"linux32-nopie\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-i386-deb8-linux.tar.xz\", sha256: \"be1a3b5de9f671199533d22f2810d9b62c6392b32b39833cd384a094566703c6\" } }, \"windows32\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-i386-unknown-mingw32.tar.xz\", sha256: \"3f4b9291ad35d89ca7b3561312a4329545aedceb5c4c8c5c4cf01550037376a1\" } }, \"linux64\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-x86_64-deb8-linux.tar.xz\", sha256: \"55b54bce14661c19288c3413b8fab95d2b7fae407986323c7f0b6a732bec6a38\" } }, \"linux64-tinfo\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-x86_64-deb8-linux.tar.xz\", sha256: \"55b54bce14661c19288c3413b8fab95d2b7fae407986323c7f0b6a732bec6a38\" } }, \"linux64-tinfo6\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-x86_64-fedora27-linux.tar.xz\", sha256: \"47c7e4350c9560f984bde75b243aa10c91e37494152d87d20f84fcee857338ef\" } }, \"linux64-tinfo-nopie\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-x86_64-fedora27-linux.tar.xz\", sha256: \"47c7e4350c9560f984bde75b243aa10c91e37494152d87d20f84fcee857338ef\" } }, \"linux64-nopie\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-x86_64-deb8-linux.tar.xz\", sha256: \"55b54bce14661c19288c3413b8fab95d2b7fae407986323c7f0b6a732bec6a38\" } }, \"windows64\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-x86_64-unknown-mingw32.tar.xz\", sha256: \"93dd7f80e3c645b79a91f3023046144ec88927961a3443019034e2893de43752\" } }, \"macosx\": { \"8.4.0.20180118\": { url: \"https://downloads.haskell.org/~ghc/8.4.1-alpha2/ghc-8.4.0.20180118-x86_64-apple-darwin.tar.xz\", sha256: \"b3119b255ab3d1a09fcf9919bddbbe2cd77f9175de14e4b23f20b40abe5edea1\" } } } }, resolver: ghc-8.4.0.20180118, compiler: ghc-8.4.0.20180118, compiler-check: match-exact, packages: [ '.' ], extra-deps: [ basement-0.0.6, memory-0.14.14, foundation-0.0.19, vector-0.12.0.1, QuickCheck-2.11.3, ansi-terminal-0.8.0.1, async-2.1.1.1, call-stack-0.1.0, clock-0.7.2, optparse-applicative-0.14.0.0, random-1.1, tagged-0.8.5, unbounded-delays-0.1.1.0, tasty-1.0.0.1, tasty-hunit-0.10.0.1, tasty-kat-0.0.3, tasty-quickcheck-0.9.2, ansi-wl-pprint-0.6.8.2, colour-2.3.4, tf-random-0.5, transformers-compat-0.5.1.4, primitive-0.6.3.0, gauge-0.2.1 ], flags: {}, allow-newer: true }" > stack.yaml
|
||||
export HADDOCK_OPTs="--haddock --no-haddock-deps"
|
||||
;;
|
||||
esac
|
||||
# build & run test
|
||||
stack --no-terminal test --install-ghc --coverage --bench --no-run-benchmarks ${HADDOCK_OPTS}
|
||||
;;
|
||||
hlint)
|
||||
curl -sL https://raw.github.com/ndmitchell/hlint/master/misc/travis.sh | sh -s . --cpp-define=__GLASGOW_HASKELL__=800 --cpp-define=x86_64_HOST_ARCH=1 --cpp-define=mingw32_HOST_OS=1
|
||||
;;
|
||||
weeder)
|
||||
stack --no-terminal build --install-ghc
|
||||
curl -sL https://raw.github.com/ndmitchell/weeder/master/misc/travis.sh | sh -s .
|
||||
;;
|
||||
esac
|
||||
set +ex
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
module Main where
|
||||
|
||||
import Criterion.Main
|
||||
import Gauge.Main
|
||||
|
||||
import Crypto.Cipher.AES
|
||||
import Crypto.Cipher.Blowfish
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
module Number.F2m (benchF2m) where
|
||||
|
||||
import Criterion.Main
|
||||
import Gauge.Main
|
||||
import System.Random
|
||||
|
||||
import Crypto.Number.Basic (log2)
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
{-# LANGUAGE PackageImports #-}
|
||||
module Main where
|
||||
|
||||
import Criterion.Main
|
||||
import Gauge.Main
|
||||
import Crypto.Hash.Algorithms as Crypto
|
||||
import "cryptonite" Crypto.KDF.PBKDF2 as Crypto
|
||||
import "fastpbkdf2" Crypto.KDF.PBKDF2 as Fast
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
{-# LANGUAGE PackageImports #-}
|
||||
module Main where
|
||||
|
||||
import Criterion.Main
|
||||
import Gauge.Main
|
||||
import Control.Monad
|
||||
|
||||
import "cryptonite" Crypto.Random
|
||||
|
||||
@ -436,7 +436,7 @@ Benchmark bench-cryptonite
|
||||
, bytestring
|
||||
, deepseq
|
||||
, memory
|
||||
, criterion
|
||||
, gauge
|
||||
, random
|
||||
, cryptonite
|
||||
ghc-options: -Wall -fno-warn-missing-signatures
|
||||
|
||||
Loading…
Reference in New Issue
Block a user