commit | 9283dddfbbb72f9d173c22888dfc9c698f26cb85 | [log] [tgz] |
---|---|---|
author | John McDole <codefu@google.com> | Mon Feb 24 17:07:19 2025 -0800 |
committer | CQ Bot Account <flutter-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Feb 24 17:07:19 2025 -0800 |
tree | a72dfdc8524fe6e977fd99e7ae023db32ddd5a87 | |
parent | 12d9c3e2fbc7a05c1c5e26d731077e9f843c9d53 [diff] |
Make Builds Faster The Mac builds can take ~45 minutes to build. There are two spots that can be optimized; not blocking on launched builds right away and downloading artifacts in parallel. The `collect builds` step can take >25 minutes - during which we could be mounting caches and checking out the tree (~5 minutes). The `Download for build*` steps can be very fast in some cases; but they are serialized. Ranging between ~5m to ~15m; we could get some wins here. - Adds two flags: - `delay_collect_builds`: after launching builds; continue setting up the orchestrator before waiting for builds to complete. - `parallel_download_builds`: attempt to download all artifacts in parallel. These flags can be added to the top level builder json file (example)[https://github.com/flutter/flutter/blob/ebc7d244d365a8bb5ea3b7f1d8c5dc87107ab44f/engine/src/flutter/ci/builders/mac_host_engine.json#L4] responsible for setting up drones: ```json "luci_flags": { "delay_collect_builds": true, "parallel_download_builds": true }, ``` led comment tested with: ``` led get-builder 'luci.flutter.staging:Mac mac_host_engine' | led edit -pa git_ref='refs/pull/164027/head' | led edit -pa luci_flags='{"delay_collect_builds": true, "parallel_download_builds":true}' | led edit -pa git_url='https://github.com/flutter/flutter' | led edit -pa is_fusion='true' | led edit-recipe-bundle | led launch ``` build showing both flags working: https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac%20mac_host_engine/8/overview Change-Id: If00f2e5dc56a529fe6904bd85148cb6e86c6d614 Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/63800 Commit-Queue: John McDole <codefu@google.com> Reviewed-by: Zach Anderson <zra@google.com> Reviewed-by: Matan Lurey <matanl@google.com>
This repository contains Flutter's LUCI recipes. For the LUCI infrastructure config, see flutter/infra. Builds can be found in the Flutter Dashboard.
Supported repositories roll their .ci.yaml
into flutter/infra, which updates what properties builds have. For example, flutter config specifies various dependencies the different tests require, which are then used by the flutter_deps recipe_module No modifications to flutter/infra are required to work on the recipes.
Please follow instructions on Contributing docs to set up your development environment.