.travis.yml 5 KB
Newer Older
1
2
language: python

3
4
5
6
7
8
9
addons:
  apt:
    packages:
      - gromacs
      - doxygen
      - python-numpy
      - python-scipy
10
      - libfftw3-dev
11

12
13
14
matrix:
  include:
    - sudo: required
15
16
17
      env: ==CPU_OPENCL==
           OPENCL=true
           CUDA=false
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
           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: []}}

34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    - sudo: required
      env: ==CUDA_COMPILE==
           CUDA=true
           OPENCL=false
           CUDA_VERSION="7.0-28"
           CMAKE_FLAGS="
             -DOPENMM_BUILD_CUDA_TESTS=OFF
             -DOPENMM_BUILD_OPENCL_TESTS=OFF
             -DOPENMM_BUILD_PYTHON_WRAPPERS=OFF
             -DOPENMM_BUILD_REFERENCE_TESTS=OFF
             -DOPENMM_BUILD_SERIALIZATION_TESTS=OFF
             -DOPENMM_BUILD_C_AND_FORTRAN_WRAPPERS=OFF
             -DOPENMM_BUILD_EXAMPLES=OFF
             -DOPENCL_LIBRARY=/usr/local/cuda-7.0/lib64/libOpenCL.so"
      addons: {apt: {packages: []}}

    - language: objective-c
      os: osx
      env: ==OSX==
           OPENCL=false
           CUDA=false
           CMAKE_FLAGS="
             -DOPENMM_BUILD_OPENCL_TESTS=OFF
             -DSWIG_EXECUTABLE=/usr/local/Cellar/swig/3.0.2/bin/swig"
      addons: {apt: {packages: []}}

60
61
    - sudo: false
      python: 2.7_with_system_site_packages
62
63
64
      env: ==STATIC_LIB==
           OPENCL=false
           CUDA=false
65
66
67
68
           CC=clang
           CXX=clang++
           CMAKE_FLAGS="-DOPENMM_BUILD_STATIC_LIB=ON"

69
70
    - sudo: false
      python: 2.7_with_system_site_packages
71
72
73
      env: ==PYTNON_2==
           OPENCL=false
           CUDA=false
74
75
           CC=clang
           CXX=clang++
76
           CMAKE_FLAGS=""
77

78
79
    - sudo: false
      python: 3.4
80
81
82
      env: ==PYTHON_3==
           OPENCL=false
           CUDA=false
83
84
           CC=gcc
           CXX=g++
85
           CMAKE_FLAGS=""
Robert McGibbon's avatar
Robert McGibbon committed
86

87
before_install:
88
89
90
91
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew install doxygen swig fftw;
      sudo easy_install pytest;
    fi
92
  - if [[ "$OPENCL" == "true" ]]; then
93
      sudo apt-get -yq update > /dev/null 2>&1 ;
94
95
      sudo apt-get install -qq fglrx=2:8.960-0ubuntu1 opencl-headers;
    fi
96
97
98
99
100
  # Install swig for Python wrappers. However, testing CUDA and OpenCL, we
  # skip the Python wrapper for speed. We're not using anaconda python,
  # but this is a fast way to get an apparently functional precompiled
  # build of swig that's more modern than what's in apt.
  - if [[ "$OPENCL" == "false" && "$CUDA" == "false" && "$TRAVIS_OS_NAME" == "linux" ]]; then
Robert McGibbon's avatar
Robert McGibbon committed
101
      wget https://anaconda.org/omnia/swig/3.0.7/download/linux-64/swig-3.0.7-0.tar.bz2;
102
      mkdir $HOME/swig;
Robert McGibbon's avatar
Robert McGibbon committed
103
      tar -xjvf swig-3.0.7-0.tar.bz2 -C $HOME/swig;
104
      export PATH=$HOME/swig/bin:$PATH;
Robert McGibbon's avatar
Robert McGibbon committed
105
      export SWIG_LIB=$HOME/swig/share/swig/3.0.7;
106
    fi
107

108
109
110
111
112
113
114
115
116
117
118
119
120
  - if [[ "$CUDA" == "true" ]]; then
      wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1204/x86_64/cuda-repo-ubuntu1204_${CUDA_VERSION}_amd64.deb";
      sudo dpkg -i cuda-repo-ubuntu1204_${CUDA_VERSION}_amd64.deb;
      sudo apt-get update -qq;
      export CUDA_APT=${CUDA_VERSION%-*};
      export CUDA_APT=${CUDA_APT/./-};
      sudo apt-get install -y cuda-drivers cuda-core-${CUDA_APT} cuda-cudart-dev-${CUDA_APT} cuda-cufft-dev-${CUDA_APT};
      sudo apt-get clean;
      export CUDA_HOME=/usr/local/cuda-${CUDA_VERSION%%-*};
      export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH};
      export PATH=${CUDA_HOME}/bin:${PATH};
    fi

121
script:
122
123
  - 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
124
  - make -j2 install
125
  - if [[ "$OPENCL" == "true" ]]; then ./TestOpenCLDeviceQuery; fi
126
127
128
129
130
131
  - if [[ "$OPENCL" == "false" && "$CUDA" == "false" ]]; then
      if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
          sudo make PythonInstall;
      else
          make PythonInstall;
      fi;
132
133
134
135
      python -m simtk.testInstallation;
      (cd python/tests && py.test -v *);
    fi

136
  - # run all of the tests, making sure failures at this stage don't cause travis failures
137
  - ctest -j2 --output-on-failure --schedule-random --stop-time $CTEST_STOP_TIME || true
138
  - # get a list of all of the failed tests into this stupid ctest format
139
  - 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
140
141
142
  - if [ -s Testing/Temporary/LastTestsFailed.log ]; then
      ctest -I FailedTests.log;
    fi