)]}' { "commit": "574e50d8798c09c42107732452d09a33256a2991", "tree": "2091b0e7cee7b82b0201550662812c322fe986b1", "parents": [ "41f884c3a56daaa1877b86b6b23bd6c1c4ac84e3" ], "author": { "name": "Keyong Han", "email": "keyonghan@google.com", "time": "Fri Aug 26 17:38:24 2022 +0000" }, "committer": { "name": "CQ Bot Account", "email": "flutter-scoped@luci-project-accounts.iam.gserviceaccount.com", "time": "Fri Aug 26 17:38:24 2022 +0000" }, "message": "Add build+test separation support\n\n1) devicelab_drone_build_test.py is the entry point of a task\n a) it builds artifacts (on VMs) if there are none yet\n b) it triggers a subbuild to run test on a devicelab bot, based on the pre-built artifacts\n2) the triggered subbuilds run agains devicelab_test_drone.py\n a) builder `Linux Devicelab Test Drone` has been available in infra config: https://flutter.googlesource.com/infra/+/refs/heads/main/config/flutter_config.star#93\n\nThis CL\n1) adds support for Linux targets only. Once validated, we will extend to Mac ones.\n2) is a no-op for existing CI. Once this lands, we will validate the logic starting with `Linux_gallery` targets.\n\nSuccessful LED runs:\n1) build: https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/keyonghan_google.com/bf21dd57b3c0b119359e791aa702bffe2c7add72246631e72a7f33a4785a948c/+/build.proto?server\u003dchromium-swarm.appspot.com\n2) test: https://luci-milo.appspot.com/raw/build/logs.chromium.org/flutter/led/keyonghan_google.com/c85443802d56afc40f45510c78a155a3876985245a6fbfd8b3648f9dacf91252/+/build.proto\n\nChange-Id: I3125f3a89e174a17e6f6c7b045cea783eb0db5f2\nBug: https://github.com/flutter/flutter/issues/103542\nReviewed-on: https://flutter-review.googlesource.com/c/recipes/+/33021\nReviewed-by: Casey Hillers \u003cchillers@google.com\u003e\nCommit-Queue: Keyong Han \u003ckeyonghan@google.com\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "9d5f9fd8e4e88c1db12c876fe0252dd870cca989", "old_mode": 33188, "old_path": "recipe_modules/repo_util/api.py", "new_id": "7a2946ed85730cd851d47952e7954949da74683d", "new_mode": 33188, "new_path": "recipe_modules/repo_util/api.py" }, { "type": "modify", "old_id": "7710cc1c395e3368970bbc44038f5782d421b733", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/basic.json", "new_id": "e50d6605156ddc1e9759968e473a9b4d0a8ff5ee", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/basic.json" }, { "type": "modify", "old_id": "05fa9ac0399bfb3dada2af14be417d66f088c068", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/bot_update.json", "new_id": "9a420121dfc64b6258e849e8e9949566f6145fd4", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/bot_update.json" }, { "type": "modify", "old_id": "28d8a251f91e6029f8057670f8b9005ade42f620", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/failed_flutter_environment.json", "new_id": "ed44b07d90cd03eb6315a2f6d346018871eb93bf", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/failed_flutter_environment.json" }, { "type": "modify", "old_id": "17d565e11948d53248a41f5f881f2cec9ec752bd", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/first_bot_update_failed.json", "new_id": "e8bb0493b85aadc8b0bd70e99a23cb7dc751a752", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/first_bot_update_failed.json" }, { "type": "modify", "old_id": "cc1ca0d5cc21671450d798e7e0a01bfecfb8a156", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/first_bot_update_revision_not_found.json", "new_id": "4a1b57ec64d7763c7345de9868509cb023dc3d28", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/first_bot_update_revision_not_found.json" }, { "type": "modify", "old_id": "e15369d6459946224cbbd040c60413e6f8df9f18", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/monorepo.json", "new_id": "c62fb8e14a61f4fabd5378e3cee9240fbd1139d8", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/monorepo.json" }, { "type": "modify", "old_id": "c8ea13672f84282d48ac7482e08a2b5f9db9b93a", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/monorepo_first_bot_update_failed.json", "new_id": "f2b62b18969811c26942e6844cac870b870d1b0e", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/monorepo_first_bot_update_failed.json" }, { "type": "modify", "old_id": "c02a6886c6994560c232deef28ae44c1ad11086f", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.expected/monorepo_wrong_host.json", "new_id": "c5a0665d5635969b86efd43c9d3acaf7909b8951", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.expected/monorepo_wrong_host.json" }, { "type": "modify", "old_id": "4ab0af53264c2488ed96413c9e7bcaa38ba9dbc3", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/full.py", "new_id": "b9930583292604d7e0728387d0c450c10442a5d0", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/full.py" }, { "type": "modify", "old_id": "6bae8d8130a4003635f8bd0065f9532996e06b73", "old_mode": 33188, "old_path": "recipe_modules/repo_util/examples/unsupported.expected/unsupported.json", "new_id": "b449ffa36c322750e9e3446aa88176268db2b9e4", "new_mode": 33188, "new_path": "recipe_modules/repo_util/examples/unsupported.expected/unsupported.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "57655b9fed0421d6e2a6e0e3db885e25716de192", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "51689914df83b93fdc83ca4ca4496bbc56227ea8", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_drone_build_test.expected/artifact exists.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "83e8d51b264ad92c3c391a27ea3b7673bbc9fbea", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "3359ba7965f7ec1e8bebfdce62e6d2ba486aad70", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_drone_build_test.expected/no-artifact-name.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "b37d94cdd7a6b2a93b652edbf1c1e9b48b6c2914", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_drone_build_test.expected/no-task-name.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "334c5576f7ed85811a01c94db0cdbcd4b3316ccc", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_drone_build_test.py" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "bc7d7b81e4f3179ef44e288928eac26b56bc9d8e", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.expected/artifact-exists.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "259a8e7e79b3d166ef06fd14d34dc93b1088b339", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.expected/basic.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "6a7d21e4d0a146da7b381153adb94970094659e0", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.expected/experimental.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "8f6466944ceeb8275d7805fbd82ba316711f223f", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.expected/local-engine.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "285b96871ed63dbbe0974e38f034d698e0e1ea50", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.expected/no-artifact-name.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "c918fb5fb3f84bdd13107dd6ddbbc33a96a9ab20", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.expected/no-task-name.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "29c136ce9f94ebbb82f52317ccd2d97dd33a3fc3", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.expected/no-upload-metrics-linux-staging.json" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "addff8b2a583e12072b0af80eee0c9104366f914", "new_mode": 33188, "new_path": "recipes/devicelab/devicelab_test_drone.py" } ] }