language: cpp cache: directories: - $HOME/third_party - $HOME/.ccache - $HOME/.cache/pip - $HOME/Library/Caches/Homebrew sudo: required dist: trusty os: - linux - osx env: - JOB=DOCS - JOB=BUILD_AND_TEST - JOB=PRE_COMMIT matrix: exclude: - os: osx env: JOB=DOCS # Only generate documentation in linux. - os: osx env: JOB=PRE_COMMIT # Only check pre-commit hook in linux addons: apt: packages: - gcc-4.8 - g++-4.8 - gfortran-4.8 - git - build-essential - python - python-pip - python2.7-dev - python-numpy - python-wheel - curl - swig - graphviz - clang-format-3.8 - automake - libtool - ccache before_install: - | if [ ${JOB} == "BUILD_AND_TEST" ]; then local change_list=`git diff --name-only $TRAVIS_COMMIT_RANGE` if [ $? -eq 0 ]; then # if git diff return no zero, then rerun unit test. if ! echo ${change_list} | grep -qvE '(\.md$)|(\.rst$)|(\.jpg$)|(\.png$)' then echo "Only markdown docs were updated, stopping build process." exit fi fi fi - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then paddle/scripts/travis/before_install.osx.sh; fi - if [[ "$JOB" == "PRE_COMMIT" ]]; then sudo ln -s /usr/bin/clang-format-3.8 /usr/bin/clang-format; fi # Paddle is using protobuf 3.1 currently. Protobuf 3.2 breaks the compatibility. So we specify the python # protobuf version. - pip install numpy wheel 'protobuf==3.1' sphinx recommonmark sphinx_rtd_theme virtualenv pre-commit requests==2.9.2 LinkChecker 'scikit-learn>=0.18.0' 'scipy>=0.18.0' script: - paddle/scripts/travis/main.sh notifications: email: on_success: change on_failure: always