Skip to content

Commit

Permalink
Add pypirc check
Browse files Browse the repository at this point in the history
Signed-off-by: Joffrey F <[email protected]>
  • Loading branch information
shin- committed Oct 12, 2018
1 parent 9018511 commit be324d5
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 21 deletions.
24 changes: 3 additions & 21 deletions script/release/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
from release.const import REPO_ROOT
from release.downloader import BinaryDownloader
from release.images import ImageManager
from release.pypi import check_pypirc
from release.pypi import pypi_upload
from release.repository import delete_assets
from release.repository import get_contributors
from release.repository import Repository
Expand All @@ -28,8 +30,6 @@
from release.utils import update_init_py_version
from release.utils import update_run_sh_version
from release.utils import yesno
from requests.exceptions import HTTPError
from twine.commands.upload import main as twine_upload


def create_initial_branch(repository, args):
Expand Down Expand Up @@ -170,25 +170,6 @@ def distclean():
shutil.rmtree(folder, ignore_errors=True)


def pypi_upload(args):
print('Uploading to PyPi')
try:
rel = args.release.replace('-rc', 'rc')
twine_upload([
'dist/docker_compose-{}*.whl'.format(rel),
'dist/docker-compose-{}*.tar.gz'.format(rel)
])
except HTTPError as e:
if e.response.status_code == 400 and 'File already exists' in e.message:
if not args.finalize_resume:
raise ScriptError(
'Package already uploaded on PyPi.'
)
print('Skipping PyPi upload - package already uploaded')
else:
raise ScriptError('Unexpected HTTP error uploading package to PyPi: {}'.format(e))


def resume(args):
try:
distclean()
Expand Down Expand Up @@ -277,6 +258,7 @@ def start(args):
def finalize(args):
distclean()
try:
check_pypirc()
repository = Repository(REPO_ROOT, args.repo)
img_manager = ImageManager(args.release)
pr_data = repository.find_release_pr(args.release)
Expand Down
44 changes: 44 additions & 0 deletions script/release/release/pypi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from __future__ import absolute_import
from __future__ import unicode_literals

from configparser import Error
from requests.exceptions import HTTPError
from twine.commands.upload import main as twine_upload
from twine.utils import get_config

from .utils import ScriptError


def pypi_upload(args):
print('Uploading to PyPi')
try:
rel = args.release.replace('-rc', 'rc')
twine_upload([
'dist/docker_compose-{}*.whl'.format(rel),
'dist/docker-compose-{}*.tar.gz'.format(rel)
])
except HTTPError as e:
if e.response.status_code == 400 and 'File already exists' in e.message:
if not args.finalize_resume:
raise ScriptError(
'Package already uploaded on PyPi.'
)
print('Skipping PyPi upload - package already uploaded')
else:
raise ScriptError('Unexpected HTTP error uploading package to PyPi: {}'.format(e))


def check_pypirc():
try:
config = get_config()
except Error as e:
raise ScriptError('Failed to parse .pypirc file: {}'.format(e))

if config is None:
raise ScriptError('Failed to parse .pypirc file')

if 'pypi' not in config:
raise ScriptError('Missing [pypi] section in .pypirc file')

if not (config['pypi'].get('username') and config['pypi'].get('password')):
raise ScriptError('Missing login/password pair for pypi repo')

0 comments on commit be324d5

Please sign in to comment.