Matthias Volk
8 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