John "codefu" McDole 90e5f43ada
feat: upload artifacts to content_hash if signaled (#171166)
part of #167780

`upload_content_hash` is paired with

[cocoon's](2a5f4afa3d/app_dart/config.yaml (L12-L15))
`waitOnContentHash` flag. When enabled, cocoon will add the
`content_hash` solution to the luci build properties when scheduling
[merge group

targets](2a5f4afa3d/app_dart/lib/src/service/scheduler.dart (L703-L706)).

If `upload_content_hash` is present and the `content_hash` is passed,
the [engine_v2 & builder
recipie](https://flutter-review.googlesource.com/c/recipes/+/66780) will
upload to a second location. This upload should happen only once; for
the first matching engine change.

> [!IMPORTANT]
>
[`windows_arm_host_engine`](https://flutter-dashboard.appspot.com/#/build?taskFilter=windows_arm_host_engine&repo=flutter&branch=master)
is not built in the merge queue and won't get the content_hash value
passed down to it, so it will not get uploaded today. This should be
fine given we're still testing; but Cocoon would need to schedule
limited post submits so this eventually only builds and uploads once.
2025-06-25 21:00:51 +00:00
..

Flutter Engine

Setting up the Engine development environment

See here

gclient bootstrap

Flutter engine uses gclient to manage dependencies.

If you've already cloned the flutter repository:

  1. Copy one of the engine/scripts/*.gclient to the root folder as .gclient:
    1. Googlers: copy rbe.gclient to enable faster builds with RBE
    2. Everyone else: copy standard.gclient
  2. run gclient sync from the root folder