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) if not pr_data: raise ScriptError('No PR found for {}'.format(args.release)) if not check_pr_mergeable(pr_data): raise ScriptError( 'Can not finalize release with an unmergeable PR') if not img_manager.check_images(): raise ScriptError('Missing release image') br_name = branch_name(args.release) if not repository.branch_exists(br_name): raise ScriptError('No local branch exists for this release.') gh_release = repository.find_release(args.release) if not gh_release: raise ScriptError('No Github release draft for this version') repository.checkout_branch(br_name) pypandoc.convert_file(os.path.join(REPO_ROOT, 'README.md'), 'rst', outputfile=os.path.join(REPO_ROOT, 'README.rst')) run_setup(os.path.join(REPO_ROOT, 'setup.py'), script_args=['sdist', 'bdist_wheel']) merge_status = pr_data.merge() if not merge_status.merged and not args.finalize_resume: raise ScriptError('Unable to merge PR #{}: {}'.format( pr_data.number, merge_status.message)) pypi_upload(args) img_manager.push_images() repository.publish_release(gh_release) except ScriptError as e: print(e) return 1 return 0
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) if not pr_data: raise ScriptError('No PR found for {}'.format(args.release)) if not check_pr_mergeable(pr_data): raise ScriptError('Can not finalize release with an unmergeable PR') if not img_manager.check_images(): raise ScriptError('Missing release image') br_name = branch_name(args.release) if not repository.branch_exists(br_name): raise ScriptError('No local branch exists for this release.') gh_release = repository.find_release(args.release) if not gh_release: raise ScriptError('No Github release draft for this version') repository.checkout_branch(br_name) pypandoc.convert_file( os.path.join(REPO_ROOT, 'README.md'), 'rst', outputfile=os.path.join(REPO_ROOT, 'README.rst') ) run_setup(os.path.join(REPO_ROOT, 'setup.py'), script_args=['sdist', 'bdist_wheel']) merge_status = pr_data.merge() if not merge_status.merged and not args.finalize_resume: raise ScriptError( 'Unable to merge PR #{}: {}'.format(pr_data.number, merge_status.message) ) pypi_upload(args) img_manager.push_images() repository.publish_release(gh_release) except ScriptError as e: print(e) return 1 return 0
def finalize(args): distclean() try: check_pypirc() repository = Repository(REPO_ROOT, args.repo) tag_as_latest = _check_if_tag_latest(args.release) img_manager = ImageManager(args.release, tag_as_latest) pr_data = repository.find_release_pr(args.release) if not pr_data: raise ScriptError('No PR found for {}'.format(args.release)) if not check_pr_mergeable(pr_data): raise ScriptError('Can not finalize release with an unmergeable PR') if not img_manager.check_images(): raise ScriptError('Missing release image') br_name = branch_name(args.release) if not repository.branch_exists(br_name): raise ScriptError('No local branch exists for this release.') gh_release = repository.find_release(args.release) if not gh_release: raise ScriptError('No Github release draft for this version') repository.checkout_branch(br_name) os.system('python {setup_script} sdist bdist_wheel'.format( setup_script=os.path.join(REPO_ROOT, 'setup.py'))) merge_status = pr_data.merge() if not merge_status.merged and not args.finalize_resume: raise ScriptError( 'Unable to merge PR #{}: {}'.format(pr_data.number, merge_status.message) ) pypi_upload(args) img_manager.push_images() repository.publish_release(gh_release) except ScriptError as e: print(e) return 1 return 0