diff --git a/.travis.yml b/.travis.yml index 22fcdc1d1..cb6027b4c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -122,3 +122,25 @@ after_success: # 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) + +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: + # Deploy source distribution + - stage: deploy + name: Deploy source distribution and wheel + install: skip + script: python3 setup.py sdist bdist_wheel + after_success: | + python3 -m pip install twine + python3 -m twine upload --repository testpypi --skip-existing dist/* diff --git a/setup.py b/setup.py index 1a7725b64..6bc311077 100755 --- a/setup.py +++ b/setup.py @@ -33,7 +33,8 @@ if sys.version_info < (3, 2): raise SystemExit("Gramps requires Python 3.2 or later.") from distutils import log -from distutils.core import setup, Command +from setuptools import setup +from distutils.core import Command from distutils.util import convert_path, newer from distutils.command.build import build as _build import os @@ -400,6 +401,13 @@ setup(name = 'gramps', cmdclass = {'build': build, 'test': test}, packages = packages, package_data = {'gramps': package_data}, + extras_require={ + "bsddb": ["bsddb3"], + "image": ["Pillow"], + "i18n": ["PyICU"], + "GUI": ["PyGObject", "pycairo"], + "testing": ["jsonschema", "mock", "lxml"], + }, data_files = data_files, scripts = ['scripts/gramps'], classifiers = [