IHaskell/.travis.yml
2017-03-06 10:51:20 -05:00

92 lines
3.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Test against different stack LTS versions.
env:
- DISPLAY=true RESOLVER=lts-8.3 # GHC 8.0.2
# Choose a lightweight base image; we provide our own build tools.
language: python
# Enable caching.
sudo: false
# Caching so the next build will be fast too.
# These caches are the same between resolvers, but this is fine,
# as Stack differentiates between its resolvers.
cache:
directories:
- $HOME/.ghc
- $HOME/.cabal
- $HOME/.stack
- $HOME/zeromq
# Enable packages we need.
# Not all packages are available see before_install for from-source builds.
addons:
apt:
packages:
- libmagic-dev # magic
- libgmp-dev # ghc
- libblas-dev # hmatrix
- liblapack-dev # hmatrix
before_install:
# Download and unpack the stack executable
- export PATH=$HOME/.local/bin:$PATH
- mkdir -p ~/.local/bin
- curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
# Install zeromq3 -- the package is not supported yet on Travis whitelist... (06/06/2016)
- |
if [ ! -d "$HOME/zeromq/lib" ]; then
export OLDPWD=$(pwd)
travis_retry git clone http://www.github.com/zeromq/zeromq4-x.git libzmq
mkdir $HOME/zeromq
cd libzmq
travis_retry ./autogen.sh
travis_retry ./configure --prefix=$HOME/zeromq
make
travis_retry make install
cd $OLDPWD
fi
# Upgrades to avoid later build problems
- pip install -U pip
- pip install -U setuptools
# Install nbconvert for testing the notebook
- pip install jupyter notebook nbconvert
# This step takes the longest, and is what generates the Stack cache.
install:
# Set path for pkg-config to find zeromq, otherwise install of zeromq4-haskell fails.
- export PKG_CONFIG_PATH=$HOME/zeromq/lib/pkgconfig/
- |
echo "apply-ghc-options: everything" >> stack.yaml
- stack setup --resolver=$RESOLVER
- stack install gtk2hs-buildtools --fast
- stack build hmatrix --resolver=$RESOLVER --fast
- stack build --dependencies-only --resolver=$RESOLVER --fast
script:
- export LD_LIBRARY_PATH=$HOME/zeromq/lib
- stack test --resolver=$RESOLVER --fast
- |
set -e
if $DISPLAY; then
TOP=$(pwd)
stack build --resolver=$RESOLVER --fast
# Ensure that ipython-kernel examples build successfully.
stack build ipython-kernel --flag ipython-kernel:examples --fast
# Ensure that IHaskell notebook remains unchanged.
# Run the notebook to regenerate the outputs, then compare the new notebook to the old one.
stack install
stack exec -- ihaskell install --stack
stack exec -- jupyter nbconvert --to=notebook --execute --stdout notebooks/IHaskell.ipynb > ~/ihaskell-out.ipynb
# Images are rendered differently on different systems, so filter them out in the comparison
diff <(grep -v image/png ~/ihaskell-out.ipynb) <(grep -v image/png notebooks/IHaskell.ipynb)
fi