147 lines
5.2 KiB
YAML
147 lines
5.2 KiB
YAML
#
|
||
# 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/
|
||
|
||
os: linux
|
||
dist: xenial
|
||
language: python
|
||
python:
|
||
- 3.5
|
||
|
||
addons:
|
||
apt:
|
||
packages:
|
||
- gir1.2-pango-1.0
|
||
- gir1.2-gtk-3.0
|
||
- xdg-utils
|
||
- librsvg2-common
|
||
- libglib2.0-dev
|
||
- intltool
|
||
# - python3-gobject Provided by python3-gi
|
||
- python3-gi
|
||
- python3-cairo
|
||
- python3-gi-cairo
|
||
- python3-bsddb3
|
||
- python3-dev
|
||
- python3-nose
|
||
- python3-mock
|
||
- python3-icu
|
||
- python3-coverage
|
||
- python3-jsonschema
|
||
# lxml dependencies. for merge_ref_test to work
|
||
# - libxml2-dev
|
||
# - libxslt1-dev
|
||
- libxml2-utils
|
||
- python3-lxml
|
||
- python-libxml2
|
||
# ubuntu 14.04 requires this in addition to libxml2-dev and
|
||
# libxslt1-dev for compiling lxml.
|
||
# https://github.com/deanmalmgren/textract/issues/19
|
||
- zlib1g-dev
|
||
|
||
stages:
|
||
- test
|
||
# Only execute deployment stage on tagged commits, and from our repository
|
||
# (e.g. not PRs).
|
||
- name: deploy
|
||
if: tag IS PRESENT AND repo = gramps-project/gramps
|
||
|
||
env:
|
||
global:
|
||
- TWINE_USERNAME=__token__
|
||
|
||
jobs:
|
||
include:
|
||
- stage: test
|
||
name: Run unit tests
|
||
install:
|
||
# The working directory is set to /home/travis/build/gramps-project/gramps
|
||
# by the automatic git checkout.
|
||
|
||
# Download Sean Ross-Ross's Pure Python module containing a framework to
|
||
# manipulate and analyze python ast<73>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:
|
||
# 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=merge_ref_test"
|
||
# set GRAMPS_RESOURCES for locale, data,image and documentation
|
||
- export GRAMPS_RESOURCES=.
|
||
# Install addons
|
||
- mkdir -p ~/.gramps/gramps52/plugins/
|
||
- wget https://github.com/gramps-project/addons/raw/master/gramps52/download/CliMerge.addon.tgz
|
||
- tar -C ~/.gramps/gramps52/plugins -xzf CliMerge.addon.tgz
|
||
- wget https://github.com/gramps-project/addons/raw/master/gramps52/download/ExportRaw.addon.tgz
|
||
- tar -C ~/.gramps/gramps52/plugins -xzf ExportRaw.addon.tgz
|
||
|
||
script:
|
||
# 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:
|
||
# 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)
|
||
|
||
# Deploy source distribution
|
||
- stage: deploy
|
||
name: Deploy source distribution and wheel
|
||
install: skip
|
||
script:
|
||
- python3 setup.py sdist bdist_wheel
|
||
- python3 -m pip install twine
|
||
- python3 -m twine upload --repository testpypi --skip-existing dist/*
|