language: python addons: apt: packages: - gromacs - doxygen - python-numpy - python-scipy matrix: include: - sudo: required env: OPENCL=true CC=gcc CXX=g++ CMAKE_FLAGS=" -OPENMM_BUILD_OPENCL_LIB=ON -DOPENMM_BUILD_OPENCL_TESTS=ON -DOPENMM_BUILD_STATIC_LIB=OFF -DOPENMM_BUILD_CPU_LIB=OFF -DOPENMM_BUILD_REFERENCE_TESTS=OFF -DOPENMM_BUILD_SERIALIZATION_TESTS=OFF -DOPENMM_BUILD_PME_PLUGIN=OFF -DOPENMM_BUILD_AMOEBA_PLUGIN=OFF -DOPENMM_BUILD_PYTHON_WRAPPERS=OFF -DOPENMM_BUILD_C_AND_FORTRAN_WRAPPERS=OFF -DOPENMM_BUILD_EXAMPLES=OFF" addons: {apt: {packages: []}} - sudo: false python: 2.7_with_system_site_packages env: OPENCL=false CC=clang CXX=clang++ CMAKE_FLAGS="-DOPENMM_BUILD_STATIC_LIB=ON" - sudo: false python: 2.7_with_system_site_packages env: OPENCL=false CC=clang CXX=clang++ CMAKE_FLAGS="-DOPENMM_BUILD_STATIC_LIB=OFF" - sudo: false python: 3.4 env: OPENCL=false CC=gcc CXX=g++ CMAKE_FLAGS="-DOPENMM_BUILD_STATIC_LIB=OFF" before_install: - if [[ "$OPENCL" == "true" ]]; then sudo apt-get -yq update &>> ~/apt-get-update.log; sudo apt-get install -qq fglrx=2:8.960-0ubuntu1 opencl-headers; fi - if [[ "$OPENCL" == "false" ]]; then wget https://anaconda.org/anaconda/swig/3.0.2/download/linux-64/swig-3.0.2-0.tar.bz2; mkdir $HOME/swig; tar -xjvf swig-3.0.2-0.tar.bz2 -C $HOME/swig; export PATH=$HOME/swig/bin:$PATH; export SWIG_LIB=$HOME/swig/share/swig/3.0.2; fi script: - CTEST_STOP_TIME=$(python -c "from datetime import datetime, timedelta; import sys; sys.stdout.write((datetime.now() + timedelta(minutes=25)).strftime('%H:%M:%S'))") - cmake . $CMAKE_FLAGS -DCMAKE_INSTALL_PREFIX=$HOME/OpenMM - make -j2 install - if [[ "$OPENCL" == "true" ]]; then ./TestOpenCLDeviceQuery; fi - if [[ "$OPENCL" == "false" ]]; then make PythonInstall; python -m simtk.testInstallation; (cd python/tests && py.test -v *); fi - # run all of the tests, making sure failures at this stage don't cause travis failures - ctest -j2 --output-on-failure --schedule-random --stop-time $CTEST_STOP_TIME || true - # get a list of all of the failed tests into this stupid ctest format - python -c "import os; fn = os.path.join('Testing', 'Temporary', 'LastTestsFailed.log'); os.path.exists(fn) or exit(0); failed = [line.split(':')[0] for line in open(fn)]; print(','.join(x+','+x for x in failed))" > FailedTests.log - if [ -s Testing/Temporary/LastTestsFailed.log ]; then ctest -I FailedTests.log; fi