Ejemplo n.º 1
0
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")
Ejemplo n.º 2
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