Merge branch 'sebres/0.10-travis-xenial' into 0.10:

- multi-distribution (trusty & xenial);
- python 3.8 (and new python/pypy minor versions on xenial);
pull/2427/head
sebres 2019-05-14 20:10:10 +02:00
commit 607e965e7b
1 changed files with 37 additions and 22 deletions

View File

@ -1,21 +1,32 @@
# vim ft=yaml # vim ft=yaml
# travis-ci.org definition for Fail2Ban build # travis-ci.org definition for Fail2Ban build
# https://travis-ci.org/fail2ban/fail2ban/ # https://travis-ci.org/fail2ban/fail2ban/
#os: linux
language: python language: python
python: dist: xenial
- 2.6
- 2.7 matrix:
- pypy fast_finish: true
# disabled until coverage module fixes up compatibility issue include:
# - 3.2 - python: 2.6
- 3.3 dist: trusty # required for Python 2.6
- 3.4 - python: 2.7
- 3.5 dist: trusty # required for packages like gamin
- 3.6 name: 2.7 (trusty)
- 3.7-dev - python: 2.7
# disabled since setuptools dropped support for Python 3.0 - 3.2 name: 2.7 (xenial)
# - pypy3 - python: pypy
- pypy3.3-5.5-alpha dist: trusty
- python: 3.3
dist: trusty
- python: 3.4
- python: 3.5
- python: 3.6
- python: 3.7
- python: 3.8-dev
- python: pypy3.5
before_install: before_install:
- echo "running under $TRAVIS_PYTHON_VERSION" - echo "running under $TRAVIS_PYTHON_VERSION"
- if [[ $TRAVIS_PYTHON_VERSION == 2* || $TRAVIS_PYTHON_VERSION == pypy* && $TRAVIS_PYTHON_VERSION != pypy3* ]]; then export F2B_PY=2; fi - if [[ $TRAVIS_PYTHON_VERSION == 2* || $TRAVIS_PYTHON_VERSION == pypy* && $TRAVIS_PYTHON_VERSION != pypy3* ]]; then export F2B_PY=2; fi
@ -35,17 +46,22 @@ install:
# codecov: # codecov:
- travis_retry pip install codecov - travis_retry pip install codecov
# dnspython or dnspython3 # dnspython or dnspython3
- if [[ "$F2B_PY" = 2 ]]; then travis_retry pip install dnspython; fi - if [[ "$F2B_PY" = 2 ]]; then travis_retry pip install dnspython || echo 'not installed'; fi
- if [[ "$F2B_PY" = 3 ]]; then travis_retry pip install dnspython3; fi - if [[ "$F2B_PY" = 3 ]]; then travis_retry pip install dnspython3 || echo 'not installed'; fi
# python systemd bindings:
- if [[ "$F2B_PY" = 2 ]]; then travis_retry sudo apt-get install -qq python-systemd || echo 'not installed'; fi
- if [[ "$F2B_PY" = 3 ]]; then travis_retry sudo apt-get install -qq python3-systemd || echo 'not installed'; fi
# gamin - install manually (not in PyPI) - travis-ci system Python is 2.7 # 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 - 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/) || echo 'not installed'; fi
# pyinotify # pyinotify
- travis_retry pip install pyinotify - travis_retry pip install pyinotify || echo 'not installed'
# Install helper tools # Install helper tools
- sudo apt-get install shellcheck - sudo apt-get install shellcheck
before_script: before_script:
# Manually execute 2to3 for now # Manually execute 2to3 for now
- if [[ "$F2B_PY" = 3 ]]; then ./fail2ban-2to3; fi - if [[ "$F2B_PY" = 3 ]]; then ./fail2ban-2to3; fi
# (debug) output current preferred encoding:
- python -c 'import locale, sys; from fail2ban.helpers import PREFER_ENC; print(PREFER_ENC, locale.getpreferredencoding(), (sys.stdout and sys.stdout.encoding))'
script: script:
# Keep the legacy setup.py test approach of checking coverage for python2 # Keep the legacy setup.py test approach of checking coverage for python2
- if [[ "$F2B_PY" = 2 ]]; then coverage run setup.py test; fi - if [[ "$F2B_PY" = 2 ]]; then coverage run setup.py test; fi
@ -53,15 +69,14 @@ script:
- if [[ "$F2B_PY" = 3 ]]; then coverage run bin/fail2ban-testcases --verbosity=2; fi - 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) # Use $VENV_BIN (not python) or else sudo will always run the system's python (2.7)
- sudo $VENV_BIN/pip install . - sudo $VENV_BIN/pip install .
# Doc files should get installed on Travis under Linux # Doc files should get installed on Travis under Linux (python >= 3.8 seem to use another path segment)
- test -e /usr/share/doc/fail2ban/FILTERS - if [[ $TRAVIS_PYTHON_VERSION < 3.8 ]]; then test -e /usr/share/doc/fail2ban/FILTERS; fi
# Test initd script # Test initd script
- shellcheck -s bash -e SC1090,SC1091 files/debian-initd - shellcheck -s bash -e SC1090,SC1091 files/debian-initd
after_success: after_success:
- if [[ "$F2B_COV" = 1 ]]; then coveralls; fi - if [[ "$F2B_COV" = 1 ]]; then coveralls; fi
- codecov - codecov
matrix:
fast_finish: true
# Might be worth looking into # Might be worth looking into
#notifications: #notifications:
# email: true # email: true