https://github.com/kit-parco/networkit
Tip revision: 4ae694a5d8865e58ce58a3dc2e993326d54515e9 authored by Fabian Brandt-Tumescheit on 01 March 2020, 16:11:37 UTC
Bump version to 6.1
Bump version to 6.1
Tip revision: 4ae694a
.travis.yml
language: generic
git:
depth: 1
env:
global:
- export OMP_NUM_THREADS=2
- export CXX_STANDARD=11
- export MONOLITH=ON
jobs:
include:
- name: macOS 10.14, Apple Clang
env:
- CC=cc
- CXX=c++
os: osx
osx_image: xcode10.2
addons:
homebrew:
packages:
- libomp
update: true
- name: macOS 10.14, llvm 8
env:
- CC=/usr/local/opt/llvm@8/bin/clang
- CXX=/usr/local/opt/llvm@8/bin/clang++
os: osx
osx_image: xcode10.2
addons:
homebrew:
packages:
- llvm@8
- libomp
update: true
- name: macOS 10.14, GCC 8
env:
- CC=/usr/local/opt/gcc@8/bin/gcc-8
- CXX=/usr/local/opt/gcc@8/bin/g++-8
os: osx
osx_image: xcode10.2
addons:
homebrew:
packages:
- gcc@8
update: true
before_install:
- brew link gcc@8
- name: macOS 10.14, Apple Clang, non-monolith
env:
- CC=cc
- CXX=c++
os: osx
osx_image: xcode10.2
addons:
homebrew:
packages:
- libomp
update: true
script:
- $CXX --version
- mkdir build_non_monolith && cd "$_"
- cmake -DNETWORKIT_MONOLITH=OFF -DNETWORKIT_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug ..
- make -j2
- ctest -V
- name: macOS 10.13, llvm 8
env:
- CC=/usr/local/opt/llvm@8/bin/clang
- CXX=/usr/local/opt/llvm@8/bin/clang++
os: osx
osx_image: xcode10.1
addons:
homebrew:
packages:
- llvm@8
- libomp
update: true
- name: macOS 10.13, GCC 8
env:
- CC=/usr/local/opt/gcc@8/bin/gcc-8
- CXX=/usr/local/opt/gcc@8/bin/g++-8
os: osx
osx_image: xcode10.1
addons:
homebrew:
packages:
- gcc@8
update: true
before_install:
- brew link gcc@8
- name: macOS 10.13, Apple Clang
env:
- CC=cc
- CXX=c++
os: osx
osx_image: xcode10.1
addons:
homebrew:
packages:
- libomp
update: true
# Test with sanitizers.
- name: "Linux, GCC 5: Core build, sanitizers, coverage"
compiler: gcc
os: linux
dist: xenial
addons: &gcc5
apt:
packages:
- python3-pip
- python3.5-venv
script:
- python3 -m venv pyenv && . pyenv/bin/activate
- pip3 install --upgrade pip
- pip3 install setuptools cpp-coveralls
- mkdir build && cd "$_"
- cmake -DNETWORKIT_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DNETWORKIT_WITH_SANITIZERS=leak -DNETWORKIT_COVERAGE=ON ..
- make -j2
- ctest -V
after_success:
- cd ..
- coveralls -E ".*test/.*" -E ".*CMakeFiles.*" --exclude extlibs --exclude pyenv --exclude scripts --root .
- name: Linux, GCC 8
env:
- CC=gcc-8
- CXX=g++-8
os: linux
dist: xenial
addons: &gcc8
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-8
- python3-pip
- python3.5-venv
- name: Linux, GCC 4.9
env:
- CC=gcc-4.9
- CXX=g++-4.9
os: linux
dist: xenial
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- cmake
- g++-4.9
- python3-pip
- python3.5-venv
- name: Linux, Clang 3.8
env:
- CC=clang-3.8
- CXX=clang++-3.8
os: linux
dist: xenial
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
- clang-3.8
- libiomp-dev
- python3-pip
- python3.5-venv
# Test more exotic builds only on Linux.
- name: "Linux, GCC 8: Core build, debugging"
env:
- CC=gcc-8
- CXX=g++-8
os: linux
dist: xenial
addons: *gcc8
script: &script_cpp_only
- $CXX --version
- mkdir debug_test && cd "$_"
- cmake -DNETWORKIT_BUILD_TESTS=ON -DNETWORKIT_MONOLITH=$MONOLITH -DNETWORKIT_CXX_STANDARD=$CXX_STANDARD -DNETWORKIT_WARNINGS=ON -DCMAKE_BUILD_TYPE=Debug ..
- make -j2
- ctest -V
- name: "Linux, GCC 8: Core build, non-monolithic"
env:
- CC=gcc-8
- CXX=g++-8
- MONOLITH=OFF
os: linux
dist: xenial
addons: *gcc8
script: *script_cpp_only
# Finally, test conformance to newer versions of the C++ standard.
- name: "Linux, GCC 8: C++14 conformance"
env:
- CC=gcc-8
- CXX=g++-8
- CXX_STANDARD=14
os: linux
dist: xenial
addons: *gcc8
script: *script_cpp_only
- name: "Linux, GCC 8: C++17 conformance"
env:
- CC=gcc-8
- CXX=g++-8
- CXX_STANDARD=17
os: linux
dist: xenial
addons: *gcc8
script: *script_cpp_only
- name: Documentation only
env:
- CC=gcc-8
- CXX=g++-8
os: linux
dist: xenial
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-8
- python3-pip
- python3.5-venv
- doxygen
script:
- set -e
- python3 -m venv pyenv && . pyenv/bin/activate
- pip3 install --upgrade pip
# cython is required because git does not contain _NetworKit.
- pip3 install cython
# sphinx_bootstrap_theme is required to build the documentation.
- pip3 install sphinx sphinx_bootstrap_theme
# Build the C++ core library (no need for optimizations).
- mkdir core_build && cd "$_"
- cmake -DCMAKE_BUILD_TYPE=Debug -DNETWORKIT_CXX_STANDARD=$CXX_STANDARD -DNETWORKIT_WARNINGS=ON ..
- make -j2
- cd ..
# Build the Python extension.
- export CMAKE_LIBRARY_PATH=${CMAKE_LIBRARY_PATH:+$CMAKE_LIBRARY_PATH:}$(pwd)/core_build
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)/core_build
- NETWORKIT_PARALLEL_JOBS=2 python3 ./setup.py build_ext --inplace --networkit-external-core
- NETWORKIT_PARALLEL_JOBS=2 pip3 install -e .
# Build the documentation.
- cd core_build
- make docs
- touch htmldocs/.nojekyll
- rm -rf htmldocs/{.buildinfo,.doctrees}
deploy:
provider: pages
skip-cleanup: true
token: $SECRET_DEPLOY_GITHUB_PAGES
local_dir: core_build/htmldocs
repo: networkit/dev-docs
target_branch: master
on:
branch: Dev
- name: "Style guide compliance"
os: linux
dist: bionic
addons:
apt:
sources: ['llvm-toolchain-bionic-8']
packages: ['clang-format-8']
script:
- set -e
- ./check_code.sh
script:
- $CXX --version
- python3 --version
- cmake --version
- python3 -m venv pyenv && . pyenv/bin/activate
- pip3 install --upgrade pip
# cython is required because git does not contain _NetworKit.
# ipython is required for tests.
- pip3 install cython ipython jupyter
# First, build the C++ core library and run C++ tests.
- mkdir core_build && cd "$_"
- cmake -DNETWORKIT_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DNETWORKIT_CXX_STANDARD=$CXX_STANDARD -DNETWORKIT_WARNINGS=ON -DNETWORKIT_WARNINGS_AS_ERRORS=ON ..
- make -j2
- UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ASAN_OPTIONS=abort_on_error=1 ctest -V
- cd ..
# Finally, build the Python extension and run Python tests.
- export CMAKE_LIBRARY_PATH=${CMAKE_LIBRARY_PATH:+$CMAKE_LIBRARY_PATH:}$(pwd)/core_build
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$(pwd)/core_build
- NETWORKIT_PARALLEL_JOBS=2 python3 ./setup.py build_ext --inplace --networkit-external-core
- NETWORKIT_PARALLEL_JOBS=2 pip3 install -e .
# Check that NetworKit can be successfuly imported without dependencies.
- python3 -c "import networkit"
# Install dependencies before running the tests.
- pip3 install -r requirements.txt
- python3 -m unittest discover -v networkit/test/
# Test Jupyter-notebooks
- python3 notebooks/test_notebooks.py 'notebooks/'
notifications:
email: false