commit | c0610ba70baef1ab7f2cfa510d48840cec65c94a | [log] [tgz] |
---|---|---|
author | Chris Bracken <cbracken@google.com> | Tue May 28 20:05:08 2024 +0000 |
committer | CQ Bot Account <flutter-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue May 28 20:05:08 2024 +0000 |
tree | f88126cd83755794078bc530fa873348d17203a7 | |
parent | 4fd341a3b358bc8d3265708f4b301ce37a45b8c5 [diff] |
Use git ref to determine release branch name This updates the RepoUtils `release_candidate_branch` function to make use of the incoming git ref, if specified, when looking up which release candidate branch corresponds to the commit at HEAD. The previous implementation returned the first branch starting with "flutter-" that happens to contain the checked out commit SHA. This is problematic for two reasons: * Multiple branches may contain the checked out SHA. In particular, if newer release branches have been created since the release at which we're building, it's likely they all contain the commit. Previously, in that case, we would arbitrarily return the first matching branch. Assuming the branches are returned in lexicographic order (probably not a safe assumption), older branches will appear earlier in the list, meaning we're more likely to select the wrong branch. * We're not actually interested in whether a branch *contains* the commit at HEAD; we're interested in knowing if the branch has the commit at HEAD as *its* HEAD commit. This updates the function to check that a git ref starting with "flutter-" is specified and that its HEAD matches the current HEAD commit. Background ========== After renewing and uploading the iOS/macOS signing certificates (a process required once every 5 years), we triggered a release build to test that the new certs were picked up. This generated: * Top-level release/release_builder build 618: https://ci.chromium.org/ui/p/dart-internal/builders/flutter/Mac%20engine_release_builder/618/overview * Which triggered a macOS engine_v2/engine_v2 build 12070: https://ci.chromium.org/ui/p/dart-internal/builders/flutter/Mac%20Production%20Engine%20Drone/12070/overview * Which generated this macOS host_debug engine_v2/builder build 12082: https://ci.chromium.org/ui/p/dart-internal/builders/flutter/Mac%20Production%20Engine%20Drone/12082/infra Looking at the setup_build/run_recipe output for the top level build (618) we see the correct release candidate ref passed in: refs/heads/flutter-3.18-candidate.18 We see the same release candidate ref in the setup_build/run_recipe output for the macOS engine_v2/engine_v2 build (12070). However, looking at the third-level macOS host_debug engine_v2/builder build, we see the wrong candidate branch is selected in the kitchen-checkout and exe sections of the recipe_engine/buildbucket mappings: refs/heads/flutter-0.0-candidate.1234 This is due to the flaw in the previous branch selection logic described above. Bug: b/333426905 Change-Id: I8c8d6b8a3eb4fc69d78c0d04ecc63cd36a963297 Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/57720 Reviewed-by: Christopher Fujino <fujino@google.com> Reviewed-by: Zach Anderson <zra@google.com> Commit-Queue: Chris Bracken <cbracken@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.