| #!/usr/bin/env lucicfg |
| # Copyright 2020 The Flutter Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """ |
| Configurations for firebaselab tests. |
| |
| The schedulers pull commits indirectly from GoB repo (https://chromium.googlesource.com/external/github.com/flutter/flutter) |
| which is mirrored from https://github.com/flutter/flutter. |
| """ |
| |
| load("//lib/common.star", "common") |
| load("//lib/repos.star", "repos") |
| |
| # Global OS variables |
| LINUX_OS = "Linux" |
| |
| LINUX_DEFAULT_PACKAGES = [ |
| swarming.cache(name = "pub_cache", path = ".pub_cache"), |
| swarming.cache(name = "android_sdk", path = "android29"), |
| # Builder cache |
| swarming.cache(name = "builder_linux_firebaselab", path = "builder"), |
| ] |
| |
| def _setup(branches): |
| firebaselab_prod_config( |
| "stable", |
| branches.stable.version, |
| branches.stable.testing_ref, |
| ) |
| firebaselab_prod_config( |
| "beta", |
| branches.beta.version, |
| branches.beta.testing_ref, |
| ) |
| firebaselab_prod_config( |
| "dev", |
| branches.dev.version, |
| branches.dev.testing_ref, |
| ) |
| firebaselab_prod_config( |
| "master", |
| branches.master.version, |
| branches.master.testing_ref, |
| ) |
| |
| firebaselab_try_config() |
| |
| def firebaselab_prod_config(branch, version, ref): |
| """Prod configurations for the framework repository. |
| |
| Args: |
| branch(str): The branch name we are creating configurations for. |
| version(str): One of dev|beta|stable. |
| ref(str): The git ref we are creating configurations for. |
| """ |
| |
| # TODO(godofredoc): Merge the recipe names once we remove the old one. |
| recipe_name = ("firebaselab/firebaselab_" + version if version else "firebaselab/firebaselab") |
| luci.recipe( |
| name = recipe_name, |
| cipd_package = "flutter/recipe_bundles/flutter.googlesource.com/recipes", |
| cipd_version = "refs/heads/master", |
| ) |
| |
| # Defines console views for prod builders |
| console_view_name = ("firebaselab" if branch == "master" else "%s_firebaselab" % branch) |
| luci.console_view( |
| name = console_view_name, |
| repo = repos.FLUTTER, |
| refs = [ref], |
| ) |
| |
| # Defines prod schedulers |
| trigger_name = branch + "-gitiles-trigger-firebaselab" |
| luci.gitiles_poller( |
| name = trigger_name, |
| bucket = "prod", |
| repo = repos.FLUTTER, |
| refs = [ref], |
| ) |
| |
| # Defines triggering policy |
| if branch == "master": |
| triggering_policy = scheduler.greedy_batching( |
| max_batch_size = 3, |
| max_concurrent_invocations = 3, |
| ) |
| else: |
| triggering_policy = scheduler.greedy_batching( |
| max_batch_size = 1, |
| max_concurrent_invocations = 3, |
| ) |
| |
| # Defines firebaselab prod builders |
| |
| # Linux prod builders. |
| common.linux_prod_builder( |
| name = "Linux%s firebase_release_smoke_test|frst" % ("" if branch == "master" else " " + branch), |
| recipe = recipe_name, |
| console_view_name = console_view_name, |
| triggered_by = [trigger_name], |
| triggering_policy = triggering_policy, |
| properties = { |
| "dependencies": [{"dependency": "android_sdk"}], |
| "task_name": "release_smoke_test", |
| }, |
| caches = LINUX_DEFAULT_PACKAGES, |
| os = LINUX_OS, |
| ) |
| common.linux_prod_builder( |
| name = "Linux%s firebase_abstract_method_smoke_test|fast" % ("" if branch == "master" else " " + branch), |
| recipe = recipe_name, |
| console_view_name = console_view_name, |
| triggered_by = [trigger_name], |
| triggering_policy = triggering_policy, |
| properties = { |
| "dependencies": [{"dependency": "android_sdk"}], |
| "task_name": "abstract_method_smoke_test", |
| }, |
| caches = LINUX_DEFAULT_PACKAGES, |
| os = LINUX_OS, |
| ) |
| common.linux_prod_builder( |
| name = "Linux%s firebase_android_embedding_v2_smoke_test|faevst" % ("" if branch == "master" else " " + branch), |
| recipe = recipe_name, |
| console_view_name = console_view_name, |
| triggered_by = [trigger_name], |
| triggering_policy = triggering_policy, |
| properties = { |
| "dependencies": [{"dependency": "android_sdk"}], |
| "task_name": "android_embedding_v2_smoke_test", |
| }, |
| caches = LINUX_DEFAULT_PACKAGES, |
| os = LINUX_OS, |
| ) |
| |
| def firebaselab_try_config(): |
| """Try configurations for the framework repository.""" |
| |
| recipe_name = "firebaselab/firebaselab" |
| |
| # Defines a list view for try builders |
| list_view_name = "firebaselab-try" |
| luci.list_view( |
| name = "firebaselab-try", |
| title = "firebaselab try builders", |
| ) |
| |
| # Defines firebase try builders |
| |
| # Linux try builders. |
| common.linux_try_builder( |
| name = "Linux firebase_release_smoke_test|frst", |
| recipe = recipe_name, |
| repo = repos.FLUTTER, |
| list_view_name = list_view_name, |
| properties = { |
| "dependencies": [{"dependency": "android_sdk"}], |
| "task_name": "release_smoke_test", |
| }, |
| caches = LINUX_DEFAULT_PACKAGES, |
| os = LINUX_OS, |
| ) |
| common.linux_try_builder( |
| name = "Linux firebase_abstract_method_smoke_test|fast", |
| recipe = recipe_name, |
| repo = repos.FLUTTER, |
| list_view_name = list_view_name, |
| properties = { |
| "dependencies": [{"dependency": "android_sdk"}], |
| "task_name": "abstract_method_smoke_test", |
| }, |
| caches = LINUX_DEFAULT_PACKAGES, |
| os = LINUX_OS, |
| ) |
| common.linux_try_builder( |
| name = "Linux firebase_android_embedding_v2_smoke_test|faevst", |
| recipe = recipe_name, |
| repo = repos.FLUTTER, |
| list_view_name = list_view_name, |
| properties = { |
| "dependencies": [{"dependency": "android_sdk"}], |
| "task_name": "android_embedding_v2_smoke_test", |
| }, |
| caches = LINUX_DEFAULT_PACKAGES, |
| os = LINUX_OS, |
| ) |
| |
| firebaselab_config = struct(setup = _setup) |