Esempio n. 1
0
def raptor(is_staging):
    build_tasks = {}
    signing_tasks = {}
    other_tasks = {}

    mozharness_task_id = fetch_mozharness_task_id()
    gecko_revision = taskcluster.Queue().task(mozharness_task_id)['payload']['env']['GECKO_HEAD_REV']

    variant = get_variant('forPerformanceTest', 'geckoNightly')
    assemble_task_id = taskcluster.slugId()
    build_tasks[assemble_task_id] = BUILDER.craft_assemble_raptor_task(variant)
    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_raptor_signing_task(assemble_task_id, variant, is_staging)

    for abi in ('armeabi-v7a', 'arm64-v8a'):
        variant_apk = variant.get_apk(abi)
        all_raptor_craft_functions = [
            BUILDER.craft_raptor_tp6m_cold_task(for_suite=i)
                for i in range(1, 28)
            ] + [
                BUILDER.craft_raptor_youtube_playback_task,
            ]
        for craft_function in all_raptor_craft_functions:
            args = (signing_task_id, mozharness_task_id, variant_apk, gecko_revision, is_staging)
            other_tasks[taskcluster.slugId()] = craft_function(*args)

    return (build_tasks, signing_tasks, other_tasks)
Esempio n. 2
0
def release(channel, engine, is_staging, version_name):
    variant = get_variant('fenix' + channel.capitalize(), engine)
    taskcluster_apk_paths = variant.upstream_artifacts()

    build_tasks = {}
    signing_tasks = {}
    push_tasks = {}

    build_task_id = taskcluster.slugId()
    build_tasks[build_task_id] = BUILDER.craft_assemble_release_task(variant, channel, is_staging, version_name)

    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
        build_task_id,
        taskcluster_apk_paths,
        channel=channel,
        is_staging=is_staging,
    )

    push_task_id = taskcluster.slugId()
    push_tasks[push_task_id] = BUILDER.craft_push_task(
        signing_task_id,
        taskcluster_apk_paths,
        channel=channel,
        # TODO until org.mozilla.fenix.nightly is made public, put it on the internally-testable track
        override_google_play_track=None if channel != "nightly" else "internal",
        is_staging=is_staging,
    )

    return (build_tasks, signing_tasks, push_tasks)
Esempio n. 3
0
def release(builder, channel, engine, is_staging, version_name):
    variant = get_variant('fenix' + channel.capitalize(), engine)
    build_task = builder.craft_assemble_release_task(variant, channel,
                                                     is_staging, version_name)

    # The signing push-apk tasks are generated by taskgraph
    return [build_task]
Esempio n. 4
0
def nightly(is_staging):
    build_tasks = {}
    signing_tasks = {}
    push_tasks = {}
    other_tasks = {}

    formatted_date = datetime.datetime.now().strftime('%y%V')
    version_name = '1.0.{}'.format(formatted_date)
    assemble_task_id = taskcluster.slugId()
    variant = get_variant('nightly')
    build_tasks[assemble_task_id] = BUILDER.craft_assemble_nightly_task(
        variant, version_name, is_staging)

    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_nightly_signing_task(
        assemble_task_id, variant, is_staging=is_staging)

    push_task_id = taskcluster.slugId()
    push_tasks[push_task_id] = BUILDER.craft_push_task(signing_task_id,
                                                       variant, is_staging)

    other_tasks[taskcluster.slugId(
    )] = BUILDER.craft_upload_apk_nimbledroid_task(assemble_task_id)

    return (build_tasks, signing_tasks, push_tasks, other_tasks)
Esempio n. 5
0
def raptor(is_staging):
    build_tasks = {}
    signing_tasks = {}
    other_tasks = {}

    mozharness_task_id = fetch_mozharness_task_id()
    gecko_revision = taskcluster.Queue().task(
        mozharness_task_id)['payload']['env']['GECKO_HEAD_REV']

    variant = get_variant('raptor')
    assemble_task_id = taskcluster.slugId()
    build_tasks[assemble_task_id] = BUILDER.craft_assemble_task(variant)
    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_raptor_signing_task(
        assemble_task_id, variant, is_staging)

    all_raptor_craft_functions = [
        BUILDER.craft_raptor_tp6m_task(for_suite=i) for i in range(1, 11)
    ] + [
        BUILDER.craft_raptor_speedometer_task,
        BUILDER.craft_raptor_speedometer_power_task,
    ]

    for craft_function in all_raptor_craft_functions:
        args = (signing_task_id, mozharness_task_id, variant, gecko_revision)
        other_tasks[taskcluster.slugId()] = craft_function(
            'armeabi-v7a', *args)
        other_tasks[taskcluster.slugId()] = craft_function('arm64-v8a', *args)
        other_tasks[taskcluster.slugId()] = craft_function(
            'armeabi-v7a', *args, force_run_on_64_bit_device=True)

    return (build_tasks, signing_tasks, other_tasks)
Esempio n. 6
0
def raptor(builder, is_staging):
    mozharness_task_id = fetch_mozharness_task_id()
    gecko_revision = taskcluster.Queue({
      'rootUrl': os.environ.get('TASKCLUSTER_PROXY_URL', 'https://taskcluster.net'),
    }).task(mozharness_task_id)['payload']['env']['GECKO_HEAD_REV']

    variant = get_variant('forPerformanceTest', 'geckoNightly')
    build_task = builder.craft_assemble_raptor_task(variant)
    signing_task = builder.craft_raptor_signing_task(build_task['label'], variant, is_staging)

    tasks = [build_task, signing_task]

    for abi in ('armeabi-v7a', 'arm64-v8a'):
        variant_apk = variant.get_apk(abi)
        all_raptor_craft_functions = [
            builder.craft_raptor_tp6m_cold_task(for_suite=i)
                for i in range(1, 28)
            ] + [
                builder.craft_raptor_youtube_playback_task,
            ]
        for craft_function in all_raptor_craft_functions:
            raptor_task = craft_function(
                signing_task['label'], mozharness_task_id, variant_apk, gecko_revision, is_staging
            )
            tasks.append(raptor_task)

    return tasks
Esempio n. 7
0
def nightly_to_production_app(builder, is_staging, version_name):
    # Since the Fenix nightly was launched, we've pushed it to the production app "org.mozilla.fenix" on the
    # "nightly" track. We're moving towards having each channel be published to its own app, but we need to
    # keep updating this "backwards-compatible" nightly for a while yet
    variant = get_variant('fenixNightlyLegacy', 'geckoNightly')
    taskcluster_apk_paths = variant.upstream_artifacts()

    build_task = builder.craft_assemble_release_task(
        variant, 'nightly-legacy', is_staging, version_name)

    signing_task = builder.craft_release_signing_task(
        build_task['label'],
        taskcluster_apk_paths,
        channel='production',  # Since we're publishing to the "production" app, we need to sign for production
        is_staging=is_staging,
        publish_to_index=False,
    )

    push_task = builder.craft_push_task(
        signing_task['label'],
        taskcluster_apk_paths,
        channel='production',  # We're publishing to the "production" app on the "nightly" track
        variant=variant,
        override_google_play_track='nightly',
        is_staging=is_staging,
    )

    tasks = [build_task, signing_task, push_task]
    if not is_staging:
        tasks.append(builder.craft_upload_apk_nimbledroid_task(build_task['label']))

    return tasks
Esempio n. 8
0
def release_as_fennec(builder, is_staging, version_name):
    variant = get_variant('fennecProduction', 'geckoBeta')
    channel = 'fennec-production'

    build_task = builder.craft_assemble_release_task(variant, channel,
                                                     is_staging, version_name)

    # The signing task is generated by taskgraph
    return [build_task]
Esempio n. 9
0
def nightly_to_production_app(builder, is_staging, version_name):
    # Since the Fenix nightly was launched, we've pushed it to the production app "org.mozilla.fenix" on the
    # "nightly" track. We're moving towards having each channel be published to its own app, but we need to
    # keep updating this "backwards-compatible" nightly for a while yet
    variant = get_variant('fenixNightlyLegacy', 'geckoNightly')
    taskcluster_apk_paths = variant.upstream_artifacts()

    build_task = builder.craft_assemble_release_task(variant, 'nightly-legacy',
                                                     is_staging, version_name)

    # Nimbledroid, signing and push-apk tasks are generated by taskgraph
    return [build_task]
Esempio n. 10
0
def raptor(builder, is_staging):
    mozharness_task_id = fetch_mozharness_task_id()
    gecko_revision = taskcluster.Queue({
        'rootUrl':
        os.environ.get('TASKCLUSTER_PROXY_URL', 'https://taskcluster.net'),
    }).task(mozharness_task_id)['payload']['env']['GECKO_HEAD_REV']

    variant = get_variant('forPerformanceTest', 'geckoNightly')
    build_task = builder.craft_assemble_raptor_task(variant)

    # Signing and Raptor tasks are generated in taskgraph
    return [build_task]
Esempio n. 11
0
def release_as_fennec(builder, is_staging, version_name):
    variant = get_variant('fennecProduction', 'geckoBeta')
    channel = 'fennec-production'

    build_task = builder.craft_assemble_release_task(variant, channel, is_staging, version_name)
    signing_task = builder.craft_release_signing_task(
        build_task['label'],
        variant.upstream_artifacts(),
        channel,
        variant,
        is_staging,
    )

    return [build_task, signing_task]
Esempio n. 12
0
def nightly_to_production_app(is_staging, version_name):
    # Since the Fenix nightly was launched, we've pushed it to the production app "org.mozilla.fenix" on the
    # "nightly" track. We're moving towards having each channel be published to its own app, but we need to
    # keep updating this "backwards-compatible" nightly for a while yet
    variant = get_variant('fenixNightlyLegacy', 'geckoNightly')
    taskcluster_apk_paths = variant.upstream_artifacts()

    build_tasks = {}
    signing_tasks = {}
    push_tasks = {}
    other_tasks = {}

    build_task_id = taskcluster.slugId()
    build_tasks[build_task_id] = BUILDER.craft_assemble_release_task(
        variant, is_staging, version_name)

    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
        build_task_id,
        taskcluster_apk_paths,
        channel=
        'production',  # Since we're publishing to the "production" app, we need to sign for production
        index_channel='nightly',
        is_staging=is_staging,
    )

    push_task_id = taskcluster.slugId()
    push_tasks[push_task_id] = BUILDER.craft_push_task(
        signing_task_id,
        taskcluster_apk_paths,
        channel=
        'production',  # We're publishing to the "production" app on the "nightly" track
        override_google_play_track='nightly',
        is_staging=is_staging,
    )

    if not is_staging:
        nimbledroid_task_id = taskcluster.slugId()
        other_tasks[
            nimbledroid_task_id] = BUILDER.craft_upload_apk_nimbledroid_task(
                build_task_id)

    return (build_tasks, signing_tasks, push_tasks, other_tasks)
Esempio n. 13
0
def pr(builder):
    tasks = []

    variant = get_variant('debug', 'geckoNightly')
    tasks.append(builder.craft_assemble_pr_task(variant))
    tasks.append(builder.craft_test_pr_task(variant))

    for craft_function in (
            builder.craft_detekt_task,
            builder.craft_ktlint_task,
            builder.craft_lint_task,
            builder.craft_compare_locales_task,
            builder.craft_ui_tests_task,
    ):
        tasks.append(craft_function())

    for task in tasks:
        task['attributes']['code-review'] = True

    return tasks
Esempio n. 14
0
def release_as_fennec(is_staging, version_name):
    variant = get_variant('fennecProduction', 'geckoBeta')
    channel = 'fennec-production'

    build_tasks = {}
    signing_tasks = {}

    build_task_id = taskcluster.slugId()
    build_tasks[build_task_id] = BUILDER.craft_assemble_release_task(
        variant, channel, is_staging, version_name)

    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
        build_task_id,
        variant.upstream_artifacts(),
        channel,
        is_staging,
    )

    return (build_tasks, signing_tasks)
Esempio n. 15
0
def pr():
    if SKIP_TASKS_TRIGGER in PR_TITLE:
        print("Pull request title contains", SKIP_TASKS_TRIGGER)
        print("Exit")
        return {}

    build_tasks = {}
    signing_tasks = {}
    other_tasks = {}

    variant = get_variant('debug', 'geckoNightly')
    assemble_task_id = taskcluster.slugId()
    build_tasks[assemble_task_id] = BUILDER.craft_assemble_pr_task(variant)
    build_tasks[taskcluster.slugId()] = BUILDER.craft_test_pr_task(variant)

    for craft_function in (
        BUILDER.craft_detekt_task,
        BUILDER.craft_ktlint_task,
        BUILDER.craft_lint_task,
        BUILDER.craft_compare_locales_task,
    ):
        other_tasks[taskcluster.slugId()] = craft_function()

    return (build_tasks, signing_tasks, other_tasks)
Esempio n. 16
0
def release(builder, channel, engine, is_staging, version_name):
    variant = get_variant('fenix' + channel.capitalize(), engine)
    taskcluster_apk_paths = variant.upstream_artifacts()

    build_task = builder.craft_assemble_release_task(variant, channel, is_staging, version_name)

    signing_task = builder.craft_release_signing_task(
        build_task['label'],
        taskcluster_apk_paths,
        channel=channel,
        is_staging=is_staging,
    )

    push_task = builder.craft_push_task(
        signing_task['label'],
        taskcluster_apk_paths,
        channel=channel,
        variant=variant,
        # TODO until org.mozilla.fenix.nightly is made public, put it on the internally-testable track
        override_google_play_track=None if channel != "nightly" else "internal",
        is_staging=is_staging,
    )

    return [build_task, signing_task, push_task]