Jonah Williams f1472e1fc4
[flutter_tools] only lock if an upgrade/download will be performed (linux/macos) and output building messages to stderr (#65422)
Currently an invocation of flutter/dart will always attempt to acquire a lock. This can pose problems for tools that attempt to run multiple dart/flutter instances.

Instead update the lock logic (on Linux/macOS) so that we only attempt to acquire it if an update/snapshot needs to be performed. To avoid repeatedly performing downloads/snapshots if multiple flutter/dart invocations are fired off concurrently when an update needs to be performed, do a second check of the download/snapshot condition after the lock is released.

Additionally, moves all of the building/debug output to stderr on both the bash and batch scripts. This allows machine mode consumption of the tool to ignore needing to parse/handle the rebuild messages.
2020-09-22 17:44:08 -07:00
..

This directory contains tools and resources that the Flutter team uses during the development of the framework. The tools in this directory should not be necessary for developing Flutter applications, though of course, they may be interesting if you are curious.

The tests in this directory are run in the framework_tests_misc-* shards.

Luci builder file

try_builders.json and prod_builders.json contain the supported luci try/prod builders for flutter.

try_builders.json

It follows format:

{
    "builders":[
        {
            "name":"yyy",
            "repo":"flutter",
            "taskName":"zzz",
            "enabled":true,
            "run_if":["a/b/", "c/d/**"]
        }
    ]
}
  • enabled(optional): true is the default value if unspecified
  • run_if(optional): will always be triggered if unspecified

prod_builders.json

It follows format:

{
    "builders":[
        {
            "name":"yyy",
            "repo":"flutter",
            "taskName":"zzz",
            "flaky":false
        }
    ]
}

try_builders.json will be mainly used in flutter/cocoon to trigger/update pre-submit flutter luci tasks, whereas prod_builders.json will be mainly used in flutter/cocoon to refresh luci task statuses to dashboard.