mirror of
https://github.com/IHaskell/IHaskell.git
synced 2025-04-16 19:36:06 +00:00

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