mirror of
https://github.com/IHaskell/IHaskell.git
synced 2025-04-17 03:46:08 +00:00
429 lines
16 KiB
YAML
429 lines
16 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://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz | 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://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz | 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://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz | 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.yaml" # GHC 8.6.5
|
||
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://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz | 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.8.yaml" # GHC 8.8.1
|
||
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://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz | 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
|
||
nix: 2.3
|
||
dist: xenial
|
||
env: NIXPKGS_ALLOW_BROKEN=1
|
||
before_install:
|
||
- export NIX_CONF_DIR=~
|
||
- echo "binary-caches = https://cache.nixos.org https://ihaskell.cachix.org" >> $NIX_CONF_DIR/nix.conf
|
||
- echo "binary-cache-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ihaskell.cachix.org-1:WoIvex/Ft/++sjYW3ntqPUL3jDGXIKDpX60pC8d5VLM=" >> $NIX_CONF_DIR/nix.conf
|
||
- glibcLocales=$(nix-build https://github.com/NixOS/nixpkgs-channels/tarball/nixos-19.09 -A glibcLocales)
|
||
- echo $glibcLocales
|
||
- export LOCALE_ARCHIVE_2_27="${glibcLocales}/lib/locale/locale-archive"
|
||
script:
|
||
- nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/tarball/nixos-19.09 -p cachix --run 'cachix push ihaskell --watch-store &'
|
||
- >
|
||
nix-build
|
||
-I nixpkgs=https://github.com/NixOS/nixpkgs-channels/tarball/nixos-19.09
|
||
release.nix
|
||
--argstr compiler "ghc865"
|
||
- test/acceptance.nbconvert.sh result/bin/ihaskell-nbconvert
|
||
- language: nix
|
||
nix: 2.3
|
||
dist: xenial
|
||
env: NIXPKGS_ALLOW_BROKEN=1
|
||
before_install:
|
||
- export NIX_CONF_DIR=~
|
||
- echo "binary-caches = https://cache.nixos.org https://ihaskell.cachix.org" >> $NIX_CONF_DIR/nix.conf
|
||
- echo "binary-cache-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ihaskell.cachix.org-1:WoIvex/Ft/++sjYW3ntqPUL3jDGXIKDpX60pC8d5VLM=" >> $NIX_CONF_DIR/nix.conf
|
||
- glibcLocales=$(nix-build https://github.com/NixOS/nixpkgs-channels/tarball/nixos-19.09 -A glibcLocales)
|
||
- echo $glibcLocales
|
||
- export LOCALE_ARCHIVE_2_27="${glibcLocales}/lib/locale/locale-archive"
|
||
script:
|
||
- nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/tarball/nixos-19.09 -p cachix --run 'cachix push ihaskell --watch-store &'
|
||
- >
|
||
nix-build
|
||
-I nixpkgs=https://github.com/NixOS/nixpkgs-channels/tarball/nixos-19.09
|
||
release.nix
|
||
--argstr compiler "ghc881"
|
||
- test/acceptance.nbconvert.sh result/bin/ihaskell-nbconvert
|