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)
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)
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)
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)
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)