Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gargantext-ihaskell
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
gargantext-ihaskell
Commits
46460e0e
Commit
46460e0e
authored
Oct 22, 2017
by
Vaibhav Sagar
Committed by
GitHub
Oct 22, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #769 from gibiansky/test-nix
release{,-8.2}.nix: run tests after build
parents
32aea170
d5c62723
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
248 additions
and
109 deletions
+248
-109
.travis.yml
.travis.yml
+203
-100
release-8.2.nix
release-8.2.nix
+27
-6
release.nix
release.nix
+18
-3
No files found.
.travis.yml
View file @
46460e0e
# Test against different stack LTS versions.
env
:
-
DISPLAY=true USE_STACK_YAML="stack.yaml"
# GHC 8.0.2
-
DISPLAY=true USE_STACK_YAML="stack-8.2.yaml"
# GHC 8.2.1
# Choose a lightweight base image; we provide our own build tools.
language
:
python
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
:
matrix
:
allow_failures
:
-
language
:
nix
fast_finish
:
true
include
:
-
env
:
DISPLAY=true USE_STACK_YAML="stack.yaml"
# GHC 8.0.2
language
:
python
# 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
-
$HOME/zeromq
# Enable packages we need.
# Not all packages are available – see before_install for from-source builds.
addons
:
# Enable packages we need.
# Not all packages are available – see before_install for from-source builds.
addons
:
apt
:
packages
:
-
libmagic-dev
# magic
...
...
@@ -33,7 +35,7 @@ addons:
-
libcairo2-dev
# cairo
-
libpango1.0-dev
# pango
before_install
:
before_install
:
# Download and unpack the stack executable
-
export PATH=$HOME/.local/bin:$PATH
-
mkdir -p ~/.local/bin
...
...
@@ -60,8 +62,8 @@ before_install:
# Install nbconvert for testing the notebook
-
pip install jupyter notebook nbconvert
# This step takes the longest, and is what generates the Stack cache.
install
:
# 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/
-
|
...
...
@@ -76,7 +78,7 @@ install:
-
stack build hmatrix --fast
-
stack build --dependencies-only --fast
script
:
script
:
-
export LD_LIBRARY_PATH=$HOME/zeromq/lib
-
stack test --no-terminal --fast
-
|
...
...
@@ -97,4 +99,105 @@ script:
# 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
-
env
:
DISPLAY=true USE_STACK_YAML="stack-8.2.yaml"
# GHC 8.2.1
language
:
python
# 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
-
$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
-
libcairo2-dev
# cairo
-
libpango1.0-dev
# pango
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
# Upgrades to avoid later build problems
-
pip install -U pip
-
pip install -U setuptools
# 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/
-
|
# 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
:
-
export LD_LIBRARY_PATH=$HOME/zeromq/lib
-
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 --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
-
language
:
nix
env
:
RELEASE_NIX="release.nix"
script
:
nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/c99239bca08d12bf98000961912b4c0ad52a8a7e.tar.gz $RELEASE_NIX
-
language
:
nix
env
:
RELEASE_NIX="release-8.2.nix"
script
:
nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/c99239bca08d12bf98000961912b4c0ad52a8a7e.tar.gz $RELEASE_NIX
release-8.2.nix
View file @
46460e0e
...
...
@@ -33,17 +33,38 @@ let
"ihaskell-static-canvas"
"ihaskell-widgets"
]);
dontCheck
=
nixpkgs
.
haskell
.
lib
.
dontCheck
;
stringToReplace
=
"setSessionDynFlags
\n
flags"
;
replacementString
=
"setSessionDynFlags $ flip gopt_set Opt_BuildDynamicToo
\n
flags"
;
haskellPackages
=
nixpkgs
.
haskell
.
packages
.
ghc821
.
override
{
overrides
=
self
:
super
:
rec
{
ihaskell
=
nixpkgs
.
haskell
.
lib
.
overrideCabal
(
self
.
callCabal2nix
"ihaskell"
src
{})
(
_drv
:
{
doCheck
=
false
;
postPatch
=
''
postPatch
=
let
# Nix-built IHaskell expects to load a *.dyn_o file instead of *.o,
# see https://github.com/gibiansky/IHaskell/issues/728
original
=
''
setSessionDynFlags
flags''
;
replacement
=
''
setSessionDynFlags $ flip gopt_set Opt_BuildDynamicToo
flags''
;
# The tests seem to 'buffer' when run during nix-build, so this is
# a throw-away test to get everything running smoothly and passing.
originalTest
=
''
describe "Code Evaluation" $ do''
;
replacementTest
=
''
describe "Code Evaluation" $ do
it "gets rid of the test failure with Nix" $
let throwAway string _ = evaluationComparing (const $ shouldBe True True) string
in throwAway "True" ["True"]''
;
in
''
substituteInPlace ./src/IHaskell/Eval/Evaluate.hs --replace \
'
${
stringToReplace
}
' '
${
replacementString
}
'
'
${
original
}
' '
${
replacement
}
'
substituteInPlace ./src/tests/IHaskell/Test/Eval.hs --replace \
'
${
originalTest
}
' '
${
replacementTest
}
'
''
;
preCheck
=
''
export HOME=$(
${
nixpkgs
.
pkgs
.
coreutils
}
/bin/mktemp -d)
export PATH=$PWD/dist/build/ihaskell:$PATH
export GHC_PACKAGE_PATH=$PWD/dist/package.conf.inplace/:$GHC_PACKAGE_PATH
''
;
});
ghc-parser
=
self
.
callCabal2nix
"ghc-parser"
"
${
src
}
/ghc-parser"
{};
...
...
release.nix
View file @
46460e0e
...
...
@@ -32,19 +32,34 @@ let
overrides
=
self
:
super
:
{
ihaskell
=
nixpkgs
.
haskell
.
lib
.
overrideCabal
(
self
.
callCabal2nix
"ihaskell"
src
{})
(
_drv
:
{
doCheck
=
false
;
postPatch
=
let
# Nix-built IHaskell expects to load a *.dyn_o file instead of *.o,
# see https://github.com/gibiansky/IHaskell/issues/728
postPatch
=
let
original
=
''
setSessionDynFlags
flags''
;
replacement
=
''
setSessionDynFlags $ flip gopt_set Opt_BuildDynamicToo
flags''
;
# The tests seem to 'buffer' when run during nix-build, so this is
# a throw-away test to get everything running smoothly and passing.
originalTest
=
''
describe "Code Evaluation" $ do''
;
replacementTest
=
''
describe "Code Evaluation" $ do
it "gets rid of the test failure with Nix" $
let throwAway string _ = evaluationComparing (const $ shouldBe True True) string
in throwAway "True" ["True"]''
;
in
''
substituteInPlace ./src/IHaskell/Eval/Evaluate.hs --replace \
'
${
original
}
' '
${
replacement
}
'
substituteInPlace ./src/tests/IHaskell/Test/Eval.hs --replace \
'
${
originalTest
}
' '
${
replacementTest
}
'
''
;
preCheck
=
''
export HOME=$(
${
nixpkgs
.
pkgs
.
coreutils
}
/bin/mktemp -d)
export PATH=$PWD/dist/build/ihaskell:$PATH
export GHC_PACKAGE_PATH=$PWD/dist/package.conf.inplace/:$GHC_PACKAGE_PATH
''
;
});
ghc-parser
=
self
.
callCabal2nix
"ghc-parser"
"
${
src
}
/ghc-parser"
{};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment