mirror of
https://github.com/IHaskell/IHaskell.git
synced 2025-04-18 20:36:08 +00:00
88 lines
2.9 KiB
YAML
88 lines
2.9 KiB
YAML
# Test against different stack LTS versions.
|
||
env:
|
||
- DISPLAY=true RESOLVER=lts-6.2 # Most recent GHC 7.10 LTS
|
||
- DISPLAY=false RESOLVER=lts-2.22 # Last GHC 7.8 LTS
|
||
|
||
# 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
|
||
|
||
# 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/
|
||
- stack setup --resolver=$RESOLVER
|
||
- stack build --dependencies-only --resolver=$RESOLVER
|
||
|
||
script:
|
||
- export LD_LIBRARY_PATH=$HOME/zeromq/lib
|
||
- stack test --resolver=$RESOLVER
|
||
- |
|
||
set -e
|
||
if $DISPLAY; then
|
||
TOP=$(pwd)
|
||
for PACKAGE in ihaskell-display/*; do
|
||
cd "$TOP/$PACKAGE";
|
||
stack build --resolver=$RESOLVER;
|
||
cd "$TOP";
|
||
done
|
||
|
||
# Ensure that ipython-kernel examples build successfully.
|
||
stack build ipython-kernel --flag ipython-kernel:examples
|
||
|
||
# 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-yaml=stack-full.yaml
|
||
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
|
||
|