Skip to content

Commit

Permalink
Publish package artifacts to internal artifact feed (#554)
Browse files Browse the repository at this point in the history
* publish package artifacts to internal artifact feed

* use a project-scoped feed?

* reference package version from git through env var

* dynamic resolve package version

* change package name for ci

* use MANIFEST.in to specify dependencies after build time

* use include_package_data
  • Loading branch information
faultyserver authored May 21, 2023
1 parent 7f50d69 commit d033891
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 14 deletions.
6 changes: 6 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include README.md

graft tracker/templates
graft tracker/static
graft tracker/locale
graft tracker/fixtures
12 changes: 11 additions & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,19 @@ jobs:
displayName: 'Cache yarn'

- script: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade pip setuptools wheel twine
python setup.py package
displayName: 'Build Package'
env:
PACKAGE_NAME_SUFFIX: $(Build.SourceVersion)
- task: TwineAuthenticate@1
inputs:
artifactFeed: donation-tracker/donation-tracker-packages

- script: |
python -m twine upload -r donation-tracker-packages --config-file $(PYPIRC_PATH) dist/*.whl
displayName: Upload Package Artifact
- job: precommit_check
displayName: Run pre-commit hooks
Expand Down
23 changes: 10 additions & 13 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

from setuptools import Command, find_packages, setup

PACKAGE_NAME_SUFFIX = os.environ.get('PACKAGE_NAME_SUFFIX', None)


class PackageCommand(Command):
user_options = []
Expand All @@ -22,21 +24,14 @@ def run(self):
self.run_command('bdist_wheel')


package_data = []

old_dir = os.getcwd()

os.chdir('tracker')

for path in ['templates', 'static', 'locale', 'fixtures']:
for root, dirs, files in os.walk(path):
for f in files:
package_data.append(os.path.join(root, f))
def get_package_name(name):
if not PACKAGE_NAME_SUFFIX:
return name
return f'{name}-{PACKAGE_NAME_SUFFIX}'

os.chdir(old_dir)

setup(
name='django-donation-tracker',
name=get_package_name('django-donation-tracker'),
version='3.1',
author='Games Done Quick',
author_email='[email protected]',
Expand All @@ -46,7 +41,9 @@ def run(self):
description='A Django app to assist in tracking donations for live broadcast events.',
long_description=open('README.md').read(),
zip_safe=False,
package_data={'': ['README.md'], 'tracker': package_data},
# Included files are defined in MANIFEST.in, which will be automatically
# picked up by setuptools.
include_package_data=True,
cmdclass={
'package': PackageCommand,
},
Expand Down

0 comments on commit d033891

Please sign in to comment.