diff --git a/.travis.yml b/.travis.yml index 21ba6f0ac..d76ea4136 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,39 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2015-2015 Doug Blank +# Copyright (C) 2016 DaAwesomeP +# Copyright (C) 2016 QuLogic +# Copyright (C) 2016 Tim G L Lyons +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + # After changing this file, check it on: # http://lint.travis-ci.org/ +sudo: required +dist: trusty language: python python: - - 3.4 -sudo: false -cache: pip + - 3.3 # This is irrelevant, because the virtualenv is not used at all + +# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment +# for Python 3.2 should be added to this environment which is Python 3.3. It +# will not be possible to run coverage under Python 3.2, because coverage is +# Python 3.3 (or above) only. + addons: apt: packages: @@ -23,35 +51,61 @@ addons: - python3-dev - python3-nose - python3-mock + - python3-pyicu + - python3-coverage before_install: - - pip install --upgrade pip - - pip install --upgrade setuptools wheel nose coverage codecov install: - - travis_retry pip install --upgrade pillow - - travis_retry pip install pyicu==1.8 +# The working directory is set to /home/travis/build/gramps-project/gramps +# by the automatic git checkout. - # - cd $TRAVIS_BUILD_DIR - # $TRAVIS_BUILD_DIR is set to the location of the cloned repository: - # for example: /home/travis/build/gramps-project/gramps +# Download Sean Ross-Ross's Pure Python module containing a framework to +# manipulate and analyze python astŐs and bytecode. This is loaded to +# /home/travis/build/gramps-project/gramps/meta +# FIXME: This should be loaded from the release directory at +# https://pypi.python.org/pypi/meta - git clone -b master https://github.com/srossross/meta + +# Build Gramps package. This seems to copy everything to +# /home/travis/build/scripts-3.3 - python setup.py build before_script: -# - sudo Xvfb :99 -ac & -# - export DISPLAY=:99 +# Create the Gramps database directory. - mkdir -p ~/.gramps/grampsdb/ +# set PYTHONPATH so the directly installed module (meta) is picked up from +# /home/travis/build/gramps-project/gramps/meta + - export PYTHONPATH=meta +# set module exclusions. --exclude=TestUser because of older version of mock +# without configure_mock + - export EXCLUDE="--exclude=TestcaseGenerator --exclude=vcard + --exclude=merge_ref_test --exclude=user_test --exclude=constfunc_test.py" +# set GRAMPS_RESOURCES for locale, data,image and documentation + - export GRAMPS_RESOURCES=. script: - # --exclude=TestUser because of older version of mock - # without configure_mock - - PYTHONPATH=meta GRAMPS_RESOURCES=. nosetests3 --nologcapture --with-coverage --cover-package=gramps --exclude=TestcaseGenerator --exclude=vcard --exclude=merge_ref_test --exclude=user_test gramps +# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage +# from /usr/bin. Use libraries from /usr/lib/python3.4, +# /usr/local/lib/python3.4/dist-packages and /usr/lib/python3/dist-packages + - nosetests3 --nologcapture --with-coverage --cover-package=gramps $EXCLUDE gramps +# FIXME: This should have run from the current directory, rather than from +# gramps, because there is some test code in that directory. + +# give an error for any trailing whitespace - if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then echo "ERROR - Trailing whitespace found in source file(s)"; exit 1; fi after_success: - - codecov +# apt-get installs python3-coverage, but codecov only invokes coverage, so make +# a link + - sudo ln /usr/bin/python3-coverage /usr/bin/coverage +# We have to use the bash script because the apt-get coverage does not install +# codecov. If we used pip to install codecov, it would run inside the +# virtualenv, and that doesn't work. Change the path to ensure that codecov +# picks up coverage from /usr/bin, rather than from +# /home/travis/virtualenv/python3.3.6/bin/ + - PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)