diff --git a/.travis.yml b/.travis.yml index 3fc74e6c7c..13cc22027f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,45 +1,80 @@ +language: cpp sudo: false +compiler: + - gcc + - clang +os: + - linux + - osx dist: xenial +osx_image: xcode8.3 -branches: - only: - - master +matrix: + exclude: + # Disable all automatic entries in the test matrix + - compiler: clang + - compiler: gcc + - os: osx + - os: linux + include: + # Explicitly add tests that we want to run + - env: BUILD_DOXYGEN="yes" + compiler: gcc + os: linux + addons: + apt: + packages: + - doxygen + - doxygen-doc + - doxygen-latex + - doxygen-gui + - graphviz + install: + - pwd + - doxygen --version + ############################################################################ + # All the dependencies are installed in ${TRAVIS_BUILD_DIR}/deps/ + ############################################################################ + - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" + - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR} + ############################################################################ + # Install a recent Doxygen + ############################################################################ + - DOXYGEN_URL="http://doxygen.nl/files/doxygen-1.8.16.linux.bin.tar.gz" + - mkdir doxygen + - travis_retry wget -O - ${DOXYGEN_URL} | tar --strip-components=1 -xz -C doxygen + - export PATH=${DEPS_DIR}/doxygen/bin:${PATH} + - doxygen --version + script: + - pwd + - cd ${TRAVIS_BUILD_DIR} + - cd doc + - doxygen --version + - doxygen Doxyfile + - echo "" > html/.nojekyll + - compiler: clang + os: osx + - compiler: clang + os: linux + addons: + apt: + packages: + - libglu1-mesa-dev + - compiler: gcc + os: linux + addons: + apt: + packages: + - libglu1-mesa-dev -# Install dependencies -addons: - apt: - packages: - - doxygen - - doxygen-doc - - doxygen-latex - - doxygen-gui - - graphviz - - install: - - pwd - - doxygen --version - ############################################################################ - # All the dependencies are installed in ${TRAVIS_BUILD_DIR}/deps/ - ############################################################################ - - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" - - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR} - ############################################################################ - # Install a recent Doxygen - ############################################################################ - - DOXYGEN_URL="http://doxygen.nl/files/doxygen-1.8.16.linux.bin.tar.gz" - - mkdir doxygen - - travis_retry wget -O - ${DOXYGEN_URL} | tar --strip-components=1 -xz -C doxygen - - export PATH=${DEPS_DIR}/doxygen/bin:${PATH} - - doxygen --version + - source ci/install_travis.sh script: - - pwd - - cd ${TRAVIS_BUILD_DIR} - - cd doc - - doxygen --version - - doxygen Doxyfile - - echo "" > html/.nojekyll + - ci/test_travis.sh + +notifications: + email: false deploy: provider: pages @@ -50,3 +85,4 @@ deploy: github_token: $GH_REPO_TOKEN on: branch: master + condition: $BUILD_DOXYGEN = yes diff --git a/ci/install_travis.sh b/ci/install_travis.sh new file mode 100644 index 0000000000..5075f061e6 --- /dev/null +++ b/ci/install_travis.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +# Exit on error +set -e +# Echo each command +set -x + +export SOURCE_DIR=`pwd` +export our_install_dir="$HOME/our_usr" + +if [[ ! -d $HOME/conda_root/pkgs ]]; then + rm -rf $HOME/conda_root + if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then + wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O miniconda.sh + else + wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh + fi + bash miniconda.sh -b -p $HOME/conda_root +fi +export PATH="$HOME/conda_root/bin:$PATH" +conda config --set always_yes yes --set changeps1 no +conda config --add channels conda-forge --force +# Useful for debugging any issues with conda +conda info -a + +conda_pkgs="qt cmake" + +conda create -q -p $our_install_dir ${conda_pkgs} + +# Since this script is getting sourced, remove error on exit +set +e +set +x + +source activate $our_install_dir + +cd $SOURCE_DIR; + diff --git a/ci/test_travis.sh b/ci/test_travis.sh new file mode 100755 index 0000000000..d9c8250270 --- /dev/null +++ b/ci/test_travis.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Exit on error +set -e +# Echo each command +set -x + +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX .. +cmake --build . --target install