示例#1
0
def generate_beetmover_template_args(context):
    task = context.task
    release_props = context.release_props

    if is_maven_action(context.action):
        return _generate_beetmover_template_args_maven(task, release_props)

    tmpl_args = {
        # payload['upload_date'] is a timestamp defined by params['pushdate']
        # in mach taskgraph
        "upload_date": arrow.get(task['payload']['upload_date']).format('YYYY/MM/YYYY-MM-DD-HH-mm-ss'),
        "version": release_props["appVersion"],
        "branch": release_props["branch"],
        "product": release_props["appName"],
        "stage_platform": release_props["stage_platform"],
        "platform": release_props["platform"],
        "buildid": release_props["buildid"],
        "partials": get_partials_props(task),
        "filename_platform": NORMALIZED_FILENAME_PLATFORMS.get(release_props["stage_platform"],
                                                               release_props["stage_platform"]),
    }

    if (is_promotion_action(context.action) or
        is_release_action(context.action) or
            is_partner_action(context.action)):
        tmpl_args["build_number"] = task['payload']['build_number']
        tmpl_args["version"] = task['payload']['version']

    # e.g. action = 'push-to-candidates' or 'push-to-nightly'
    tmpl_bucket = context.action.split('-')[-1]

    locales_in_upstream_artifacts = [
        upstream_artifact['locale']
        for upstream_artifact in task['payload']['upstreamArtifacts']
        if 'locale' in upstream_artifact
    ]
    uniques_locales_in_upstream_artifacts = sorted(list(set(locales_in_upstream_artifacts)))

    if 'locale' in task['payload'] and uniques_locales_in_upstream_artifacts:
        _check_locale_consistency(task['payload']['locale'], uniques_locales_in_upstream_artifacts)
        tmpl_args['locales'] = uniques_locales_in_upstream_artifacts
    elif uniques_locales_in_upstream_artifacts:
        tmpl_args['locales'] = uniques_locales_in_upstream_artifacts
    elif 'locale' in task['payload']:
        tmpl_args['locales'] = [task['payload']['locale']]

    product_name = get_product_name(
        release_props["appName"].lower(), release_props["stage_platform"])
    if tmpl_args.get('locales') and (
            # we only apply the repacks template if not english or android "multi" locale
            set(tmpl_args.get('locales')).isdisjoint({'en-US', 'multi'})):
        tmpl_args["template_key"] = "%s_%s_repacks" % (product_name, tmpl_bucket)
    else:
        tmpl_args["template_key"] = "%s_%s" % (product_name, tmpl_bucket)

    return tmpl_args
示例#2
0
def generate_beetmover_template_args(context):
    task = context.task
    release_props = context.release_props

    upload_date = task["payload"]["upload_date"]
    args = []
    try:
        upload_date = float(upload_date)
    except ValueError:
        upload_date = upload_date.split("/")[-1]
        args.append("YYYY-MM-DD-HH-mm-ss")

    tmpl_args = {
        # payload['upload_date'] is a timestamp defined by params['pushdate']
        # in mach taskgraph
        "upload_date": arrow.get(upload_date, *args).format("YYYY/MM/YYYY-MM-DD-HH-mm-ss"),
        "version": release_props["appVersion"],
        "branch": release_props["branch"],
        "product": release_props["appName"],
        "stage_platform": release_props["stage_platform"],
        "platform": release_props["platform"],
        "buildid": release_props["buildid"],
        "partials": get_partials_props(task),
        "filename_platform": NORMALIZED_FILENAME_PLATFORMS.get(release_props["stage_platform"], release_props["stage_platform"]),
    }

    if is_promotion_action(context.action) or is_release_action(context.action) or is_partner_action(context.action):
        tmpl_args["build_number"] = task["payload"]["build_number"]
        tmpl_args["version"] = task["payload"]["version"]

    # e.g. action = 'push-to-candidates' or 'push-to-nightly'
    tmpl_bucket = context.action.split("-")[-1]

    locales_in_upstream_artifacts = [upstream_artifact["locale"] for upstream_artifact in task["payload"]["upstreamArtifacts"] if "locale" in upstream_artifact]
    uniques_locales_in_upstream_artifacts = sorted(list(set(locales_in_upstream_artifacts)))

    if "locale" in task["payload"] and uniques_locales_in_upstream_artifacts:
        _check_locale_consistency(task["payload"]["locale"], uniques_locales_in_upstream_artifacts)
        tmpl_args["locales"] = uniques_locales_in_upstream_artifacts
    elif uniques_locales_in_upstream_artifacts:
        tmpl_args["locales"] = uniques_locales_in_upstream_artifacts
    elif "locale" in task["payload"]:
        tmpl_args["locales"] = [task["payload"]["locale"]]

    product_name = get_product_name(release_props["appName"].lower(), release_props["stage_platform"])
    if tmpl_args.get("locales") and (
        # we only apply the repacks template if not english or android "multi" locale
        set(tmpl_args.get("locales")).isdisjoint({"en-US", "multi"})
    ):
        tmpl_args["template_key"] = "%s_%s_repacks" % (product_name, tmpl_bucket)
    else:
        tmpl_args["template_key"] = "%s_%s" % (product_name, tmpl_bucket)

    return tmpl_args