| #!/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 ios_tool builders. |
| |
| The schedulers for ios_tool builds use GoB flutter mirrors |
| (https://flutter-mirrors.googlesource.com/). |
| """ |
| |
| load("//lib/common.star", "common") |
| load("//lib/consoles.star", "consoles") |
| load("//lib/helpers.star", "helpers") |
| load("//lib/repos.star", "repos") |
| load("//lib/ci_yaml/ci_yaml.star", "ci_yaml") |
| |
| def _setup(): |
| luci.recipe( |
| name = "ios-usb-dependencies", |
| cipd_package = "flutter/recipe_bundles/flutter.googlesource.com/recipes", |
| cipd_version = "refs/heads/main", |
| use_bbagent = True, |
| ) |
| iostools_prod_config() |
| |
| def ios_tools_builder(name, repo): |
| """Creates configurations for ios tool builders. |
| |
| Args: |
| name(str): The name of the tool repository. |
| repo(str): The url of the repository. |
| """ |
| builder = name.split("|")[0] |
| consoles.console_view(builder, repo) |
| luci.gitiles_poller( |
| name = "gitiles-trigger-%s" % builder, |
| bucket = "prod", |
| refs = ["refs/heads/master"], |
| repo = repo, |
| triggers = [builder], |
| ) |
| |
| # re-use the config from the framework |
| ci_yaml_config = ci_yaml.ci_yaml("flutter", "master") |
| platform_properties = ci_yaml.platform_properties(ci_yaml_config) |
| |
| # The "mac_ios" shards will have the latest Xcode version |
| platform_key = "mac_ios" |
| properties = helpers.merge_dicts( |
| platform_properties[platform_key], |
| {"package_name": builder + "-flutter"}, |
| ) |
| common.mac_prod_builder( |
| name = name, |
| repo = repo, |
| recipe = "ios-usb-dependencies", |
| console_view_name = builder, |
| caches = ci_yaml.swarming_caches(ci_yaml_config, None, platform_key), |
| properties = properties, |
| os = platform_properties[platform_key]["os"], |
| triggering_policy = scheduler.greedy_batching( |
| max_concurrent_invocations = 1, |
| ), |
| ) |
| |
| def iostools_prod_config(): |
| """Creates prod configurations for iostools.""" |
| ios_tools_builder( |
| name = "ideviceinstaller|idev", |
| repo = repos.IDEVICEINSTALLER, |
| ) |
| ios_tools_builder( |
| name = "libimobiledevice|libi", |
| repo = repos.LIBIMOBILEDEVICE, |
| ) |
| ios_tools_builder(name = "libplist|plist", repo = repos.LIBPLIST) |
| ios_tools_builder(name = "usbmuxd|usbmd", repo = repos.USBMUXD) |
| ios_tools_builder(name = "openssl|ssl", repo = repos.OPENSSL) |
| ios_tools_builder(name = "ios-deploy|deploy", repo = repos.IOS_DEPLOY) |
| ios_tools_builder(name = "libzip|zip", repo = repos.LIBZIP) |
| |
| iostools_config = struct(setup = _setup) |