summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: e1f4bcfe57cd355aee8131f3bca5c6548b81f303 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
60
61
62
63
64
65
66
67
68
69
70
71
# After changing this file, check it on:
#   http://lint.travis-ci.org/
language: python
python:
  - 2.5
  - 2.6
  - 2.7
  - 3.1
  - 3.2
env:
  # Hack: 
  #
  # We want to test from Python 2.4 to Python 3.2
  # but Travis doesn't support python 2.4, and never will:
  #   https://github.com/travis-ci/travis-ci/issues/485
  #
  # So what we do is add TEST_PY24=true to the build matrix, and then for that one
  # version we don't actually use the system python, but instead build 2.4 and
  # use it.
  #
  - TEST_PY24=""
matrix:
  include:
    - python: 2.5
      env: TEST_PY24="true"
    - python: 2.7
      env: NPY_SEPARATE_COMPILATION=1
    - python: 3.2
      env: NPY_SEPARATE_COMPILATION=1
before_install:
  - mkdir builds
  - pushd builds
  # This has to be on a single "virtual line" because of how Travis
  # munges each line before executing it to print out the exit status.
  # It's okay for it to be on multiple physical lines, so long as you remember:
  # - There can't be any leading "-"s
  # - All newlines will be removed, so use ";"s
  - if [ "${TEST_PY24}" == "true" ]; then
      deactivate; 
      ../.travis-make-py24-virtualenv.sh $PWD/py24-ve;
      source $PWD/py24-ve/bin/activate;
      fi
  - pip install nose
  # pip install coverage
  - python -V
  - popd
install:
  # We used to use 'setup.py install' here, but that has the terrible
  # behaviour that if a copy of the package is already installed in
  # the install location, then the new copy just gets dropped on top
  # of it. Travis typically has a stable numpy release pre-installed,
  # and if we don't remove it, then we can accidentally end up
  # e.g. running old test modules that were in the stable release but
  # have been removed from master. (See gh-2765, gh-2768.)  Using 'pip
  # install' also has the advantage that it tests that numpy is 'pip
  # install' compatible, see e.g. gh-2766...
  - pip install .
script:
  # We change directories to make sure that python won't find the copy
  # of numpy in the source directory.
  - mkdir empty
  - cd empty
  - INSTALLDIR=$(python -c "import os; import numpy; print(os.path.dirname(numpy.__file__))")
  - export PYTHONWARNINGS=default
  - python ../tools/test-installed-numpy.py
  # - coverage run --source=$INSTALLDIR --rcfile=../.coveragerc $(which python) ../tools/test-installed-numpy.py
  # - coverage report --rcfile=../.coveragerc --show-missing
notifications:
  # Perhaps we should have status emails sent to the mailing list, but
  # let's wait to see what people think before turning that on.
  email: false