def create_version(): global PACKAGE_VERSION bintray = Bintray() now = datetime.datetime.now() PACKAGE_VERSION = now.strftime("%Y%m%d%H%M%S%f") released = now.strftime("%Y-%m-%d") return bintray.create_version("uilianries", "generic", "statistics", version=PACKAGE_VERSION, released=released, vcs_tag="0.1.0")
def main(args): """ Entry point. :type args: list """ # PARSE COMMAND LINE ARGUMENTS parser = argparse.ArgumentParser( description='Upload files to Bintray using the REST API.') # UPLOAD PARAMETERS parser.add_argument('--username', type=str, required=True, help='Bintray API username.') parser.add_argument('--api-key', type=str, required=True, help='Bintray API key.') parser.add_argument( '--subject', type=str, help='Username or organization of the target repository.') parser.add_argument('--repo', type=str, required=True, help='The repository name.') parser.add_argument('--package', type=str, required=True, help='The package name.') parser.add_argument('--version', type=str, required=True, help='The package version.') parser.add_argument('--prefix-path', type=str, help='Prefix path to prepend to the remote filename.') parser.add_argument( '--publish', action='store_true', default=False, help='Whether to publish the artifact after uploading.') parser.add_argument('--override', action='store_true', default=False, help='Whether to override conflicting artifacts.') parser.add_argument('files', type=str, metavar='artifact', nargs='+', help='Artifact to upload.') options = parser.parse_args(args) try: # INITIALIZE BINTRAY CLIENT LOGGER.info('Initialising Bintray client...') api = Bintray(options.username, options.api_key) subject = options.subject or options.username repo = options.repo package = options.package version = options.version # ATTEMPT TO ACCESS VERSION INFO try: api.get_version(subject, repo, package, version) LOGGER.info('Found existing version %s', version) except Exception as e: # CREATE A NEW VERSION IF NEEDED try: LOGGER.info('Creating new version %s', version) api.create_version(subject, repo, package, version) except Exception as e: LOGGER.exception('Unable to create new version: %s', e, exc_info=e) return 3 # UPLOAD ARTIFACTS for local_file in options.files: remote_file = '/'.join([options.prefix_path, os.path.basename(local_file)]) \ if options.prefix_path else os.path.basename(local_file) LOGGER.info('Uploading %s -> %s', local_file, remote_file) api.upload_content(subject, repo, package, version, remote_file, local_file, publish=options.publish, override=options.override) except Exception as e: LOGGER.exception('Error during content upload: %s', e, exc_info=e) return 2 LOGGER.info('Upload completed successfully.') return 0
bintray_repo, bintray_package, global_version, ) vcs_tag = "v%s" % global_version # If remote version doesn't exist or override is enabled if version_missing or override: if version_missing: # Create the remote version print("Creating new version: %s for package: %s" % (global_version, bintray_package)) bintray.create_version( subject=bintray_orga, repo=bintray_repo, package=bintray_package, version=global_version, description=version_description, released=datetime.datetime.now().isoformat(), vcs_tag=vcs_tag) else: # Update the existing remote version print("Updating existing version: %s for package: %s" % (global_version, bintray_package)) bintray.update_version(subject=bintray_orga, repo=bintray_repo, package=bintray_package, version=global_version, description=version_description, vcs_tag=vcs_tag) created = True