IHaskell/.travis.yml
James Brock ee5c008501 Stable nbconvert acceptance test
Change the `nbconvert` test so that it converts a notebook with no
Hoogle (which changes over time) and no images (which differ on
different systems).

This should reduce the number of surprise Travis test failures.
2019-06-05 11:08:32 +09:00

374 lines
13 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.

matrix:
allow_failures:
- language: nix
fast_finish: true
include:
- env: DISPLAY=true USE_STACK_YAML="stack-8.0.yaml" # GHC 8.0.2
language: python
dist: xenial
# Test against different stack LTS versions.
# Choose a lightweight base image; we provide our own build tools.
python: "3.6"
# 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
# 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
- libcairo2-dev # cairo
- libpango1.0-dev # pango
- libzmq3-dev # zmq
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'
# Upgrades to avoid later build problems
- pip install -U pip
- pip install -U setuptools
# Install from requirements.txt
- pip install -r requirements.txt
# This step takes the longest, and is what generates the Stack cache.
install:
- |
# Used to avoid 'source and destination file are the same' error
mv $USE_STACK_YAML intermediate-stack.yaml
mv intermediate-stack.yaml stack.yaml
echo "apply-ghc-options: everything" >> stack.yaml
- stack setup
- stack install gtk2hs-buildtools --fast
- stack build hmatrix --fast
- stack build --dependencies-only --fast
script:
- stack test --no-terminal --fast
- |
set -e
if $DISPLAY; then
TOP=$(pwd)
stack build --no-terminal --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 --fast
stack exec -- ihaskell install --stack
test/acceptance.nbconvert.sh stack exec -- jupyter nbconvert
fi
- env: DISPLAY=true USE_STACK_YAML="stack-8.2.yaml" # GHC 8.2.2
language: python
dist: xenial
# Test against different stack LTS versions.
# Choose a lightweight base image; we provide our own build tools.
python: "3.6"
# 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
# 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
- libcairo2-dev # cairo
- libpango1.0-dev # pango
- libzmq3-dev # zmq
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'
# Upgrades to avoid later build problems
- pip install -U pip
- pip install -U setuptools
# Install from requirements.txt
- pip install -r requirements.txt
# This step takes the longest, and is what generates the Stack cache.
install:
- |
# Used to avoid 'source and destination file are the same' error
mv $USE_STACK_YAML intermediate-stack.yaml
mv intermediate-stack.yaml stack.yaml
echo "apply-ghc-options: everything" >> stack.yaml
- stack setup
- stack install gtk2hs-buildtools --fast
- stack build hmatrix --fast
- stack build --dependencies-only --fast
script:
- stack test --no-terminal --fast
- |
set -e
if $DISPLAY; then
TOP=$(pwd)
stack build --no-terminal --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 --fast
stack exec -- ihaskell install --stack
test/acceptance.nbconvert.sh stack exec -- jupyter nbconvert
fi
- env: DISPLAY=true USE_STACK_YAML="stack-8.4.yaml" # GHC 8.4.3
language: python
dist: xenial
# Test against different stack LTS versions.
# Choose a lightweight base image; we provide our own build tools.
python: "3.6"
# 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
# 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
- libcairo2-dev # cairo
- libpango1.0-dev # pango
- libzmq3-dev # zmq
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'
# Upgrades to avoid later build problems
- pip install -U pip
- pip install -U setuptools
# Install from requirements.txt
- pip install -r requirements.txt
# This step takes the longest, and is what generates the Stack cache.
install:
- |
# Used to avoid 'source and destination file are the same' error
mv $USE_STACK_YAML intermediate-stack.yaml
mv intermediate-stack.yaml stack.yaml
echo "apply-ghc-options: everything" >> stack.yaml
- stack setup
# - stack install gtk2hs-buildtools --fast
- stack build hmatrix --fast
- stack build --dependencies-only --fast
script:
- stack test --no-terminal --fast
- |
set -e
if $DISPLAY; then
TOP=$(pwd)
stack build --no-terminal --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 --fast
stack exec -- ihaskell install --stack
test/acceptance.nbconvert.sh stack exec -- jupyter nbconvert
fi
- env: DISPLAY=false USE_STACK_YAML="stack.yaml" # GHC 8.6.3
language: python
dist: xenial
# Test against different stack LTS versions.
# Choose a lightweight base image; we provide our own build tools.
python: "3.6"
# 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
# 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
- libcairo2-dev # cairo
- libpango1.0-dev # pango
- libzmq3-dev # zmq
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'
# Upgrades to avoid later build problems
- pip install -U pip
- pip install -U setuptools
# Install from requirements.txt
- pip install -r requirements.txt
# This step takes the longest, and is what generates the Stack cache.
install:
- |
# Used to avoid 'source and destination file are the same' error
mv $USE_STACK_YAML intermediate-stack.yaml
mv intermediate-stack.yaml stack.yaml
echo "apply-ghc-options: everything" >> stack.yaml
- stack setup
# - stack install gtk2hs-buildtools --fast
- stack build hmatrix --fast
- stack build --dependencies-only --fast
script:
- stack test --no-terminal --fast
- |
set -e
if $DISPLAY; then
TOP=$(pwd)
stack build --no-terminal --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 --fast
stack exec -- ihaskell install --stack
test/acceptance.nbconvert.sh stack exec -- jupyter nbconvert
fi
- language: nix
dist: xenial
env: RELEASE_NIX="release.nix"
cache:
directories:
- /nix/store
timeout: 1000
install:
- export NIX_CONF_DIR=~
- echo "binary-caches = http://128.199.234.106:3000" >> $NIX_CONF_DIR/nix.conf
- echo "binary-cache-public-keys = 128.199.234.106:jzUyrIQHov5i6f94jQVriqPDLuPYlZPAsga3W3k+L8E=" >> $NIX_CONF_DIR/nix.conf
- nix-env -i curl jq
script:
- >
nix-build
-I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/$(curl "https://api.github.com/repos/NixOS/nixpkgs-channels/branches/nixos-17.09" | jq -r '.commit.sha').tar.gz
$RELEASE_NIX
--arg packages '(p: with p; [
ihaskell-aeson
ihaskell-blaze
ihaskell-charts
ihaskell-diagrams
ihaskell-gnuplot
ihaskell-hatex
ihaskell-juicypixels
ihaskell-magic
ihaskell-plot
ihaskell-static-canvas
])'
- test/acceptance.nbconvert.sh result/bin/ihaskell-nbconvert
- language: nix
dist: xenial
env: RELEASE_NIX="release-8.2.nix"
cache:
directories:
- /nix/store
timeout: 1000
install:
- export NIX_CONF_DIR=~
- echo "binary-caches = http://128.199.234.106:3000" >> $NIX_CONF_DIR/nix.conf
- echo "binary-cache-public-keys = 128.199.234.106:jzUyrIQHov5i6f94jQVriqPDLuPYlZPAsga3W3k+L8E=" >> $NIX_CONF_DIR/nix.conf
- nix-env -i curl jq
script:
- >
nix-build
-I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/$(curl "https://api.github.com/repos/NixOS/nixpkgs-channels/branches/nixos-17.09" | jq -r '.commit.sha').tar.gz
$RELEASE_NIX
--arg packages '(p: with p; [
ihaskell-aeson
ihaskell-blaze
ihaskell-charts
ihaskell-diagrams
ihaskell-gnuplot
ihaskell-hatex
ihaskell-juicypixels
ihaskell-magic
ihaskell-plot
ihaskell-static-canvas
])'
- test/acceptance.nbconvert.sh result/bin/ihaskell-nbconvert