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 stack exec -- jupyter nbconvert --to=notebook --execute --allow-errors --stdout notebooks/IHaskell.ipynb > ~/ihaskell-out.ipynb # Images are rendered differently on different systems, so filter them out in the comparison diff <(egrep -v 'image/png|version|pygments' ~/ihaskell-out.ipynb) <(egrep -v 'image/png|version|pygments' notebooks/IHaskell.ipynb) 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 stack exec -- jupyter nbconvert --to=notebook --execute --allow-errors --stdout notebooks/IHaskell.ipynb > ~/ihaskell-out.ipynb # Images are rendered differently on different systems, so filter them out in the comparison diff <(egrep -v 'image/png|version|pygments' ~/ihaskell-out.ipynb) <(egrep -v 'image/png|version|pygments' notebooks/IHaskell.ipynb) 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 stack exec -- jupyter nbconvert --to=notebook --execute --allow-errors --stdout notebooks/IHaskell.ipynb > ~/ihaskell-out.ipynb # Images are rendered differently on different systems, so filter them out in the comparison diff <(egrep -v 'image/png|version|pygments' ~/ihaskell-out.ipynb) <(egrep -v 'image/png|version|pygments' notebooks/IHaskell.ipynb) 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 stack exec -- jupyter nbconvert --to=notebook --execute --allow-errors --stdout notebooks/IHaskell.ipynb > ~/ihaskell-out.ipynb # Images are rendered differently on different systems, so filter them out in the comparison diff <(egrep -v 'image/png|version|pygments' ~/ihaskell-out.ipynb) <(egrep -v 'image/png|version|pygments' notebooks/IHaskell.ipynb) 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 ])' - result/bin/ihaskell-nbconvert --to=notebook --execute --allow-errors --stdout notebooks/IHaskell.ipynb > ~/ihaskell-out.ipynb - diff <(egrep -v 'image/png|version|pygments' ~/ihaskell-out.ipynb) <(egrep -v 'image/png|version|pygments' notebooks/IHaskell.ipynb) - 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 ])' - result/bin/ihaskell-nbconvert --to=notebook --execute --allow-errors --stdout notebooks/IHaskell.ipynb > ~/ihaskell-out.ipynb - diff <(egrep -v 'image/png|version|pygments' ~/ihaskell-out.ipynb) <(egrep -v 'image/png|version|pygments' notebooks/IHaskell.ipynb)