Matthias Volk
7 years ago
5 changed files with 205 additions and 0 deletions
-
34.travis.yml
-
61travis/build-helper.sh
-
42travis/build.sh
-
5travis/install_linux.sh
-
63travis/install_osx.sh
@ -0,0 +1,34 @@ |
|||||
|
# |
||||
|
# General config |
||||
|
# |
||||
|
branches: |
||||
|
only: |
||||
|
- master |
||||
|
dist: trusty |
||||
|
language: generic |
||||
|
|
||||
|
# Enable docker support |
||||
|
services: |
||||
|
- docker |
||||
|
sudo: required |
||||
|
|
||||
|
notifications: |
||||
|
email: |
||||
|
on_failure: always |
||||
|
on_success: change |
||||
|
recipients: |
||||
|
- secure: "QEKHoyya6CiCt2C8d2TupExTUy24tb8JxYUGVgBm2vqcWaEMuOpVbGeSFUJ9DVsg7VGDcL7rTFGjAJ+AlQLpRP+QKdHidECqbBn17P6koIuSrGuE9Q9VX9GEDiutYjWN8ex2Vx/tgzW7eVV71YdkWfwbnjbXTw4Uf4KqF91yoMLvubAJCaRqjrmnlyd4TWZmi+jxVHaev6OjJ82j1lCKWqNd11PpQMVWMyKE0AqX87P6fcnm5lFgV/8sK++pOR+j4eJpKeZfaUBa7PxFVIKEzEwjU3B9CKy59Mv5+omLm+56zoiLFy+2kBzdJZN96c/V4gcbO3qwItRixromj8mi0PcldAT2pvEmg50Z6/HHhVIRBiiqJo2CvAwUfp/UCRccx03GJPvzLol/DomArvVWiXHhf5HeNcgMTJ0eeeBZh35KITcltaZpR4+Zdxv+sy/M1AH3Ia0NFPcDZ8+XcR1dZUvNWs14J57gVkzocxDyXVL5CmL07qeyj9eUKLyvWer08TbY1XPpYQBxq9EuV4ZplhEYsHg0c6bMAc7PQIMWmaiVNCuzFb/ws/eTF7MUmbYoMHU3Veva/pf0HQESyoMucA+zXDk5MWJ6VRnYtVRMRdLtsfod9dSfgMNUi+TXNb3ZxjG1KNa9SnvBK+9RJ3hTnpIm9vN7lw84lxv1joElmUw=" |
||||
|
- secure: "V+e+fWWLx/SmFeseTdMvtdu3l/jFUH1SuOXYQXxyXeHcyofp/plxT5k+3ZWuCm2w3o9J9zSXo8qSFlcUR0KkSOi6moj5ki8mPjiKPbVQEnrXprZ7eVIPf1n9XF2LEON0BIlrh+PbDK5nRtPiW80nbg5UXFO+SnQr5YQgS49VPMqRIP7waIxG5Ha5AEjLXJocbPi0kFD1YBMSaL5mZ3EiGn4edXwdGjDvDhT2mw2gUlD3DQiT8MCpL6Tymt9sMK2fekhcyq7Vx4j1sDzz4X2KQZ0VpYfX+LgqtzmmJl9sd4is90tk5xV2hoxpoEePAUOg3409As0ZwadSgIrU6jLRB8TBZxZB9dcVwp++ZvjmFaHRkBr+p1rQKiiDU+K4SVWrzOtYKsKnhA8bu6TxBxfV7RQ9VPgei7JNJwjhDasWqyoASc6F8/6N03XnDsumZDiGoW6VJh9Ll3gszwqGb/+N1q9zAt1DrQSgI5BYkTjKqqavfxbxzL6ZCYl8ifu6259w45zWVygfhntT7Oe+TB9Sk3Yf9bT+XOIYPkqREFUUEi+DJtvokfJZzL1dVDrbod0vPa4rnmUdKIA2sNjlompb9d3toJlVTprJiDD2fV5DNWk4XYLxG8QvDSUUQY16BfRx2RVbG68kZzXCASdws8JeArI/FZwxyUyohv+9V4namuY=" |
||||
|
|
||||
|
# |
||||
|
# Configurations |
||||
|
# |
||||
|
jobs: |
||||
|
include: |
||||
|
# docker storm:latest |
||||
|
- os: linux |
||||
|
compiler: gcc |
||||
|
env: TASK=Test DOCKER=latest PYTHON=python3 |
||||
|
install: travis/install_linux.sh |
||||
|
script: travis/build.sh |
||||
|
|
@ -0,0 +1,61 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
set -e |
||||
|
|
||||
|
# Helper for travis folding |
||||
|
travis_fold() { |
||||
|
local action=$1 |
||||
|
local name=$2 |
||||
|
echo -en "travis_fold:${action}:${name}\r" |
||||
|
} |
||||
|
|
||||
|
# Helper for building and testing |
||||
|
run() { |
||||
|
# Create virtual environment |
||||
|
virtualenv --python=$PYTHON stormpy-env |
||||
|
source stormpy-env/bin/activate |
||||
|
# Print version |
||||
|
python --version |
||||
|
|
||||
|
# Build pycarl |
||||
|
travis_fold start build_pycarl |
||||
|
git clone https://github.com/moves-rwth/pycarl.git |
||||
|
cd pycarl |
||||
|
python setup.py build_ext -j 1 develop |
||||
|
travis_fold end build_pycarl |
||||
|
cd .. |
||||
|
|
||||
|
# Build stormpy |
||||
|
travis_fold start build_stormpy |
||||
|
python setup.py build_ext -j 1 develop |
||||
|
travis_fold end build_stormpy |
||||
|
|
||||
|
# Perform task |
||||
|
case $TASK in |
||||
|
Test) |
||||
|
# Run tests |
||||
|
set +e |
||||
|
python -m pytest -sv tests/ |
||||
|
;; |
||||
|
|
||||
|
Documentation) |
||||
|
# Generate documentation |
||||
|
pip install sphinx |
||||
|
cd doc |
||||
|
make html |
||||
|
touch build/html/.nojekyll |
||||
|
rm -r build/html/_sources |
||||
|
;; |
||||
|
|
||||
|
*) |
||||
|
echo "Unrecognized value of TASK: $TASK" |
||||
|
exit 1 |
||||
|
esac |
||||
|
} |
||||
|
|
||||
|
|
||||
|
# This only exists in OS X, but it doesn't cause issues in Linux (the dir doesn't exist, so it's |
||||
|
# ignored). |
||||
|
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" |
||||
|
|
||||
|
run |
@ -0,0 +1,42 @@ |
|||||
|
#!/bin/bash -x |
||||
|
|
||||
|
N_JOBS=2 |
||||
|
|
||||
|
OS=$TRAVIS_OS_NAME |
||||
|
|
||||
|
case $OS in |
||||
|
linux) |
||||
|
# Execute docker image on Linux |
||||
|
# Stop previous session |
||||
|
docker rm -f stormpy &>/dev/null |
||||
|
# Run container |
||||
|
set -e |
||||
|
docker run -d -it --name stormpy --privileged mvolk/storm:$DOCKER |
||||
|
# Copy local content into container |
||||
|
docker exec stormpy mkdir opt/stormpy |
||||
|
docker cp . stormpy:/opt/stormpy |
||||
|
# Install virtualenv |
||||
|
docker exec stormpy apt-get install -qq -y python python3 virtualenv |
||||
|
set +e |
||||
|
|
||||
|
# Execute main process |
||||
|
docker exec stormpy bash -c " |
||||
|
export N_JOBS=$N_JOBS; |
||||
|
export OS=$OS; |
||||
|
export PYTHON=$PYTHON; |
||||
|
export TASK=$TASK; |
||||
|
cd opt/stormpy; |
||||
|
travis/build-helper.sh" |
||||
|
exit $? |
||||
|
;; |
||||
|
|
||||
|
osx) |
||||
|
echo "MacOS currently unsupported" |
||||
|
exit 1 |
||||
|
;; |
||||
|
|
||||
|
*) |
||||
|
# Other OS |
||||
|
echo "Unsupported OS: $OS" |
||||
|
exit 1 |
||||
|
esac |
@ -0,0 +1,5 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
set -e |
||||
|
|
||||
|
sudo apt-get install -qq -y docker |
@ -0,0 +1,63 @@ |
|||||
|
#!/bin/bash |
||||
|
# Script installing dependencies |
||||
|
# Inspired by https://github.com/google/fruit |
||||
|
|
||||
|
set -e |
||||
|
|
||||
|
# Helper for travis folding |
||||
|
travis_fold() { |
||||
|
local action=$1 |
||||
|
local name=$2 |
||||
|
echo -en "travis_fold:${action}:${name}\r" |
||||
|
} |
||||
|
|
||||
|
# Helper for installing packages via homebrew |
||||
|
install_brew_package() { |
||||
|
if brew list -1 | grep -q "^$1\$"; then |
||||
|
# Package is installed, upgrade if needed |
||||
|
brew outdated "$1" || brew upgrade "$@" |
||||
|
else |
||||
|
# Package not installed yet, install. |
||||
|
# If there are conflicts, try overwriting the files (these are in /usr/local anyway so it should be ok). |
||||
|
brew install "$@" || brew link --overwrite gcc49 |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
# Update packages |
||||
|
travis_fold start brew_update |
||||
|
brew update |
||||
|
travis_fold end brew_update |
||||
|
|
||||
|
travis_fold start brew_install_util |
||||
|
# For md5sum |
||||
|
install_brew_package md5sha1sum |
||||
|
# For `timeout' |
||||
|
install_brew_package coreutils |
||||
|
|
||||
|
which cmake &>/dev/null || install_brew_package cmake |
||||
|
|
||||
|
# Install compiler |
||||
|
case "${COMPILER}" in |
||||
|
gcc-4.8) install_brew_package gcc@4.8 ;; |
||||
|
gcc-4.9) install_brew_package gcc@4.9 ;; |
||||
|
gcc-5) install_brew_package gcc@5 ;; |
||||
|
gcc-6) install_brew_package gcc@6 ;; |
||||
|
clang-default) ;; |
||||
|
clang-3.7) install_brew_package llvm@3.7 --with-clang --with-libcxx;; |
||||
|
clang-3.8) install_brew_package llvm@3.8 --with-clang --with-libcxx;; |
||||
|
clang-3.9) install_brew_package llvm@3.9 --with-clang --with-libcxx;; |
||||
|
clang-4.0) install_brew_package llvm --with-clang --with-libcxx;; |
||||
|
*) echo "Compiler not supported: ${COMPILER}. See travis/install_osx.sh"; exit 1 ;; |
||||
|
esac |
||||
|
travis_fold end brew_install_util |
||||
|
|
||||
|
|
||||
|
# Install dependencies |
||||
|
travis_fold start brew_install_dependencies |
||||
|
install_brew_package gmp --c++11 |
||||
|
install_brew_package cln |
||||
|
install_brew_package ginac |
||||
|
install_brew_package boost --c++11 |
||||
|
install_brew_package python |
||||
|
install_brew_package python3 |
||||
|
travis_fold end brew_install_dependencies |
Write
Preview
Loading…
Cancel
Save
Reference in new issue