summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 3f07cc511c5219c33ed89f4be334b71164e2594e (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
# vim ft=yaml
# travis-ci.org definition for Fail2Ban build
# https://travis-ci.org/fail2ban/fail2ban/
language: python
python:
  - 2.6
  - 2.7
  - pypy
  # disabled until coverage module fixes up compatibility issue
  # - 3.2
  - 3.3
  - 3.4
  - 3.5
  - pypy3
before_install:
  - if [[ $TRAVIS_PYTHON_VERSION == 2* || $TRAVIS_PYTHON_VERSION == 'pypy' ]]; then export F2B_PY_2=true && echo "Set F2B_PY_2"; fi
  - if [[ $TRAVIS_PYTHON_VERSION == 3* || $TRAVIS_PYTHON_VERSION == 'pypy3' ]]; then export F2B_PY_3=true && echo "Set F2B_PY_3"; fi
  - travis_retry sudo apt-get update -qq
  # Set this so sudo executes the correct python binary
  #   Anything not using sudo will already have the correct environment
  - export VENV_BIN="$VIRTUAL_ENV/bin" && echo "VENV_BIN set to $VENV_BIN"
install:
  # Install Python packages / dependencies
  #   coverage
  - travis_retry pip install coverage
  #   coveralls
  - travis_retry pip install coveralls codecov
  #   dnspython or dnspython3
  - if [[ "$F2B_PY_2" ]]; then travis_retry pip install dnspython; fi
  - if [[ "$F2B_PY_3" ]]; then travis_retry pip install dnspython3; fi
  #   gamin - install manually (not in PyPI) - travis-ci system Python is 2.7
  - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then travis_retry sudo apt-get install -qq python-gamin && cp /usr/share/pyshared/gamin.py /usr/lib/pyshared/python2.7/_gamin.so $VIRTUAL_ENV/lib/python2.7/site-packages/; fi
  #   pyinotify
  - travis_retry pip install pyinotify
before_script:
  # Manually execute 2to3 for now
  - if [[ "$F2B_PY_3" ]]; then ./fail2ban-2to3; fi
script:
  # Keep the legacy setup.py test approach of checking coverage for python2
  - if [[ "$F2B_PY_2" ]]; then coverage run setup.py test; fi
  # Coverage doesn't pick up setup.py test with python3, so run it directly (with same verbosity as from setup)
  - if [[ "$F2B_PY_3" ]]; then coverage run bin/fail2ban-testcases --verbosity=2; fi
  # Use $VENV_BIN (not python) or else sudo will always run the system's python (2.7)
  - sudo $VENV_BIN/pip install .
  # Doc files should get installed on Travis under Linux
  - test -e /usr/share/doc/fail2ban/FILTERS
after_success:
  - coveralls
  - codecov
matrix:
  fast_finish: true
# Might be worth looking into
#notifications:
#  email: true
#  irc:
#    channels: "irc.freenode.org#fail2ban"
#    template:
#      - "%{repository}@%{branch}: %{message} (%{build_url})"
#    on_success: change
#    on_failure: change
#    skip_join: true