Skip to content

Commit

Permalink
Add release automation
Browse files Browse the repository at this point in the history
  • Loading branch information
Stranger6667 committed Nov 26, 2020
1 parent 7527da0 commit 8b96dc5
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 48 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Release

on:
release:
types: [published]

jobs:
build-n-publish:
name: Build and publish Python 🐍distributions 📦 to PyPI
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install tox
run: >-
python -m
pip install
tox
--user
- name: Build a binary wheel and a source tarball
run: >-
python -m tox -e build
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.PYPI_TOKEN }}
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools >= 40.6.0", "wheel"]
build-backend = "setuptools.build_meta"
95 changes: 48 additions & 47 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import codecs
import os
import re
import sys

from setuptools import find_packages, setup
from setuptools.command.test import test as TestCommand

import djmoney


class PyTest(TestCommand):
user_options = [('pytest-args=', 'a', 'Arguments to pass into py.test')]
user_options = [("pytest-args=", "a", "Arguments to pass into py.test")]

def initialize_options(self):
TestCommand.initialize_options(self)
Expand All @@ -28,16 +27,16 @@ def run_tests(self):


test_requirements = [
'pytest>=3.1.0',
'pytest-django',
'pytest-pythonpath',
'pytest-cov',
'django-reversion',
"pytest>=3.1.0",
"pytest-django",
"pytest-pythonpath",
"pytest-cov",
"django-reversion",
]

extras_requirements = {
'test': test_requirements,
'exchange': ['certifi'],
"test": test_requirements,
"exchange": ["certifi"],
}


Expand All @@ -46,49 +45,51 @@ def read(fname):
return codecs.open(file_path, encoding="utf-8").read()


def find_version():
match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", read("djmoney/__init__.py"), re.M)
if match:
return match.group(1)
raise RuntimeError("Unable to find __version__ string.")


setup(
name='django-money',
version=djmoney.__version__,
description='Adds support for using money and currency fields in django models and forms. '
'Uses py-moneyed as the money implementation.',
name="django-money",
version=find_version(),
description="Adds support for using money and currency fields in django models and forms. "
"Uses py-moneyed as the money implementation.",
long_description=read("README.rst"),
long_description_content_type="text/x-rst",
url='https://github.com/django-money/django-money',
maintainer='Greg Reinbach',
maintainer_email='greg@reinbach.com',
url="https://github.com/django-money/django-money",
maintainer="Greg Reinbach",
maintainer_email="greg@reinbach.com",
license="BSD",
packages=find_packages(include=['djmoney', 'djmoney.*']),
install_requires=[
'setuptools',
'Django>=1.11',
'py-moneyed>=0.8'
],
python_requires='>=3.5',
platforms=['Any'],
keywords=['django', 'py-money', 'money'],
packages=find_packages(include=["djmoney", "djmoney.*"]),
install_requires=["setuptools", "Django>=1.11", "py-moneyed>=0.8"],
python_requires=">=3.5",
platforms=["Any"],
keywords=["django", "py-money", "money"],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent',
'Framework :: Django',
'Framework :: Django :: 1.11',
'Framework :: Django :: 2.1',
'Framework :: Django :: 2.2',
'Framework :: Django :: 3.0',
'Framework :: Django :: 3.1',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Framework :: Django',
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Framework :: Django",
"Framework :: Django :: 1.11",
"Framework :: Django :: 2.1",
"Framework :: Django :: 2.2",
"Framework :: Django :: 3.0",
"Framework :: Django :: 3.1",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
],
tests_require=test_requirements,
extras_require=extras_requirements,
cmdclass={'test': PyTest},
cmdclass={"test": PyTest},
)
6 changes: 5 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ deps =
commands =
flake8 {toxinidir}/djmoney {toxinidir}/tests
isort -c {toxinidir}/djmoney {toxinidir}/tests
black -l 120 --check --diff {toxinidir}/djmoney {toxinidir}/tests
black -l 120 --check --diff {toxinidir}/djmoney {toxinidir}/tests setup.py

[django]
1.11.x =
Expand Down Expand Up @@ -76,3 +76,7 @@ deps =
-rdocs/requirements.txt
commands =
make html

[testenv:build]
deps = pep517
commands = python -m pep517.build --source . --binary --out-dir dist/

0 comments on commit 8b96dc5

Please sign in to comment.