.travis.yml 6.03 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

Robert McGibbon's avatar
Robert McGibbon committed
12
13
14
15
16
env:
  global:
    - CCACHE=$HOME/ccache/lib/ccache/bin


17
18
19
matrix:
  include:
    - sudo: required
20
21
22
      env: ==CPU_OPENCL==
           OPENCL=true
           CUDA=false
Robert McGibbon's avatar
Robert McGibbon committed
23
24
           CC=$CCACHE/gcc
           CXX=$CCACHE/g++
25
26
27
28
29
30
31
32
33
34
35
36
37
38
           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: []}}

39
40
41
42
43
    - sudo: required
      env: ==CUDA_COMPILE==
           CUDA=true
           OPENCL=false
           CUDA_VERSION="7.0-28"
Robert McGibbon's avatar
Robert McGibbon committed
44
45
           CC=$CCACHE/gcc
           CXX=$CCACHE/g++
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
           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: []}}

67
68
    - sudo: false
      python: 2.7_with_system_site_packages
69
70
71
      env: ==STATIC_LIB==
           OPENCL=false
           CUDA=false
Robert McGibbon's avatar
Robert McGibbon committed
72
73
           CC=$CCACHE/clang
           CXX=$CCACHE/clang++
74
75
           CMAKE_FLAGS="-DOPENMM_BUILD_STATIC_LIB=ON"

76
77
    - sudo: false
      python: 2.7_with_system_site_packages
78
79
80
      env: ==PYTNON_2==
           OPENCL=false
           CUDA=false
Robert McGibbon's avatar
Robert McGibbon committed
81
82
           CC=$CCACHE/clang
           CXX=$CCACHE/clang++
83
           DOCS_DEPLOY=true
Robert T. McGibbon's avatar
Robert T. McGibbon committed
84
           CMAKE_FLAGS="-DOPENMM_GENERATE_API_DOCS=ON"
85

86
87
    - sudo: false
      python: 3.4
88
89
90
      env: ==PYTHON_3==
           OPENCL=false
           CUDA=false
Robert McGibbon's avatar
Robert McGibbon committed
91
92
           CC=$CCACHE/gcc
           CXX=$CCACHE/g++
93
           CMAKE_FLAGS=""
Robert McGibbon's avatar
Robert McGibbon committed
94

95
before_install:
Robert McGibbon's avatar
Robert McGibbon committed
96
97
  - wget https://anaconda.org/omnia/ccache/3.2.4/download/${TRAVIS_OS_NAME}-64/ccache-3.2.4-0.tar.bz2
  - mkdir -p $HOME/ccache && tar xf ccache-3.2.4-0.tar.bz2 -C $HOME/ccache
98
99
100
101
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew install doxygen swig fftw;
      sudo easy_install pytest;
    fi
102
  - if [[ "$OPENCL" == "true" ]]; then
103
      sudo apt-get -yq update > /dev/null 2>&1 ;
John Chodera (MSKCC)'s avatar
John Chodera (MSKCC) committed
104
      sudo apt-get install -qq ubuntu-restricted-extras;
John Chodera (MSKCC)'s avatar
John Chodera (MSKCC) committed
105
      sudo apt-get install -qq fglrx=2:8.960-0ubuntu1 opencl-headers;
106
    fi
107
108
109
110
111
  # 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
112
      wget https://anaconda.org/omnia/swig/3.0.7/download/linux-64/swig-3.0.7-0.tar.bz2;
113
      mkdir $HOME/swig;
Robert McGibbon's avatar
Robert McGibbon committed
114
      tar -xjvf swig-3.0.7-0.tar.bz2 -C $HOME/swig;
115
      export PATH=$HOME/swig/bin:$PATH;
Robert McGibbon's avatar
Robert McGibbon committed
116
      export SWIG_LIB=$HOME/swig/share/swig/3.0.7;
117
    fi
118

119
120
121
122
123
124
125
126
127
128
129
130
131
  - 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

132
script:
133
134
  - 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
135
  - make -j2 install
136
  - if [[ "$OPENCL" == "true" ]]; then ./TestOpenCLDeviceQuery; fi
137
138
139
140
141
142
  - if [[ "$OPENCL" == "false" && "$CUDA" == "false" ]]; then
      if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
          sudo make PythonInstall;
      else
          make PythonInstall;
      fi;
143
      python -m simtk.testInstallation;
144
      (cd python/tests && py.test -v);
145
146
    fi

147
  - # run all of the tests, making sure failures at this stage don't cause travis failures
148
  - python devtools/run-ctest.py -j2 --schedule-random --stop-time $CTEST_STOP_TIME
149
  - if [[ ! -z "${DOCS_DEPLOY}" && "${DOCS_DEPLOY}" = "true" ]]; then
Robert T. McGibbon's avatar
Robert T. McGibbon committed
150
      pip install sphinx sphinxcontrib-lunrsearch sphinxcontrib-autodoc_doxygen;
Robert T. McGibbon's avatar
Robert T. McGibbon committed
151
      make C++ApiDocs PythonApiDocs;
152
153
154
155
156
157
158
159
160
161
162
163
164
      mkdir -p api-docs;
      mv api-python api-docs;
      mv api-c++ api-docs;
    fi

deploy:
  - provider: s3
    access_key_id:
      secure: "AjE3nuj6kVuf21mOf0aZydW/3S/uCWsaoXC/huRxkxrmsNlnHBNGHZ9N48san1IxZAQM5pyaf7Yo9gkHur9obgq+e3lNgGvPp2mfkNXtLYcLJ46JF4kYliAtutjLWskrLg25Gu3xzF4EQkqSe0Le/oWldWWbTgvvH+KRq/vTHzI="
    secret_access_key:
      secure: "ISDQNSG2t0666PULtffo4wsKLFdu622EzuZxmiTxvLkjQGQlqm5+qn1Gd5UMLk7Ts2E0psdnmSrf6LVVCfrrQO/hcZHiJw3ZslMPDBBlRr8Epwdldn98ULhVoyQKtjXjCPzroa2UZCl1RFs4Nwb/VdDlI490XV0Lp4Woj1AT8tY="
    bucket: "docs.openmm.org"
    skip_cleanup: true
Robert McGibbon's avatar
Robert McGibbon committed
165
    region: us-west-1
166
    local_dir: api-docs/
Robert T. McGibbon's avatar
Robert T. McGibbon committed
167
    upload_dir: development
168
169
170
    on:
      branch: master
      condition: '! -z "${DOCS_DEPLOY}" && "${DOCS_DEPLOY}" = "true"'
Robert McGibbon's avatar
Robert McGibbon committed
171
172
173
174

cache:
  directories:
    - $HOME/.ccache