Example #1
0
def pr_or_push(is_push):
    if not is_push and SKIP_TASKS_TRIGGER in PR_TITLE:
        print("Pull request title contains", SKIP_TASKS_TRIGGER)
        print("Exit")
        return {}

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

    for variant in get_variants_for_build_type('debug'):
        assemble_task_id = taskcluster.slugId()
        build_tasks[assemble_task_id] = BUILDER.craft_assemble_task(variant)
        build_tasks[taskcluster.slugId()] = BUILDER.craft_test_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()

    if is_push and SHORT_HEAD_BRANCH == 'master':
        other_tasks[taskcluster.slugId()] = BUILDER.craft_dependencies_task()

    return (build_tasks, signing_tasks, other_tasks)
Example #2
0
def release(channel, is_staging, version_name):
    variants = get_variants_for_build_type(channel)
    architectures = [variant.abi for variant in variants]
    apk_paths = ["public/target.{}.apk".format(arch) for arch in architectures]

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

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

    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
        build_task_id,
        apk_paths=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,
        apks=apk_paths,
        channel=channel,
        is_staging=is_staging,
    )

    return (build_tasks, signing_tasks, push_tasks)
Example #3
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
    build_type = 'nightlyLegacy'
    variants = get_variants_for_build_type(build_type)
    architectures = [variant.abi for variant in variants]
    apk_paths = ["public/build/{}/target.apk".format(arch) for arch in architectures]

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

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

    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
        build_task_id,
        apk_paths=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,
        apks=apk_paths,
        channel='production',  # We're publishing to the "production" app on the "nightly" track
        override_google_play_track='nightly',
        is_staging=is_staging,
    )

    return (build_tasks, signing_tasks, push_tasks)
Example #4
0
def release(channel, is_staging, version_name):
    variants = get_variants_for_build_type(channel)
    architectures = [variant.abi for variant in variants]
    apk_paths = ["public/target.{}.apk".format(arch) for arch in architectures]

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

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

    signing_task_id = taskcluster.slugId()
    signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
        build_task_id,
        apk_paths=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,
        apks=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)
Example #5
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 = {}

    for variant in get_variants_for_build_type('debug'):
        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, True)

    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)