Support running recipes tests on branches different than main.
This is because now we are branching out recipes for release branches
and we want to run tests whenever we are cherry picking changes.
Change-Id: I3d740b3a085e52599733273afa898953b66c1bd1
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/26580
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/27102
diff --git a/recipes/recipes.expected/ci.json b/recipes/recipes.expected/ci.json
index b1a93c3..a6395bb 100644
--- a/recipes/recipes.expected/ci.json
+++ b/recipes/recipes.expected/ci.json
@@ -1,5 +1,50 @@
[
{
+ "cmd": [],
+ "name": "ensure gerrit"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[fuchsia::gerrit]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure gerrit.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/gerrit\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure gerrit.install path/to/gerrit",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
"cmd": [
"vpython",
"-u",
@@ -9,18 +54,737 @@
"ensure-directory",
"--mode",
"0777",
- "[START_DIR]/flutter-recipes"
+ "[START_DIR]/cipd_tool/path/to/gerrit/version%3Apinned-version"
],
"infra_step": true,
- "name": "makedirs"
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure gerrit.install path/to/gerrit.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/gerrit/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/gerrit version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure gerrit.install path/to/gerrit.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/gerrit\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/gerrit/version%3Apinned-version/gerrit",
+ "change-detail",
+ "-host",
+ "https://flutter-review.googlesource.com",
+ "-input",
+ "{\"change_id\": \"123456\", \"params\": {\"o\": [\"CURRENT_COMMIT\", \"CURRENT_REVISION\"]}}",
+ "-output",
+ "/path/to/tmp/json"
+ ],
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "details",
+ "timeout": 30,
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"branch\": \"main\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"ffffffffffffffffffffffffffffffffffffffff\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ffffffffffffffffffffffffffffffffffffffff\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"commit\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"parents\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {}@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@json.input@{@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"change_id\": \"123456\", @@@",
+ "@@@STEP_LOG_LINE@json.input@ \"params\": {@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"o\": [@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"CURRENT_COMMIT\", @@@",
+ "@@@STEP_LOG_LINE@json.input@ \"CURRENT_REVISION\"@@@",
+ "@@@STEP_LOG_LINE@json.input@ ]@@@",
+ "@@@STEP_LOG_LINE@json.input@ }@@@",
+ "@@@STEP_LOG_LINE@json.input@}@@@",
+ "@@@STEP_LOG_END@json.input@@@",
+ "@@@STEP_LINK@gerrit link@https://flutter-review.googlesource.com/q/123456@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "fetch main"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/recipes"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.makedirs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
},
{
"cmd": [
"git",
"init"
],
- "cwd": "[START_DIR]/flutter-recipes",
- "name": "git init",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.git init",
+ "timeout": 60.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "remote",
+ "add",
+ "origin",
+ "https://flutter.googlesource.com/recipes"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.git remote",
+ "timeout": 600.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "config",
+ "fetch.uriprotocols",
+ "https"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.set fetch.uriprotocols",
+ "timeout": 60.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "fetch main.cache",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "",
+ "[CACHE]/git/.GUARD_FILE"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.write guard file",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[CACHE]/git/flutter.googlesource.com-recipes"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.makedirs",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "init",
+ "--bare"
+ ],
+ "cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.git init",
+ "timeout": 60.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "config",
+ "remote.origin.url",
+ "https://flutter.googlesource.com/recipes"
+ ],
+ "cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.remote set-url",
+ "timeout": 60.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "config",
+ "fetch.uriprotocols",
+ "https"
+ ],
+ "cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.set fetch.uriprotocols",
+ "timeout": 60.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "config",
+ "--replace-all",
+ "remote.origin.fetch",
+ "+refs/heads/*:refs/heads/*",
+ "\\+refs/heads/\\*:.*"
+ ],
+ "cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.replace fetch configs",
+ "timeout": 60.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "--prune",
+ "--tags",
+ "origin"
+ ],
+ "cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.git fetch",
+ "timeout": 1200.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/recipes/.git/objects/info"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.makedirs object/info",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "[CACHE]/git/flutter.googlesource.com-recipes/objects\n",
+ "[START_DIR]/recipes/.git/objects/info/alternates"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.alternates",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@alternates@[CACHE]/git/flutter.googlesource.com-recipes/objects@@@",
+ "@@@STEP_LOG_END@alternates@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "remove",
+ "[CACHE]/git/.GUARD_FILE"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.cache.remove guard file",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "fetch",
+ "--tags",
+ "origin",
+ "main"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.git fetch",
+ "timeout": 1200.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.git checkout",
+ "timeout": 600.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.git rev-parse",
+ "timeout": 60.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.git clean",
+ "timeout": 600.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "fetch main.submodule",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.submodule.git submodule sync",
+ "timeout": 600.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--jobs",
+ "4"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "fetch main.submodule.git submodule update",
+ "timeout": 600.0,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/recipes"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "makedirs"
+ },
+ {
+ "cmd": [
+ "git",
+ "config",
+ "--remove-section",
+ "remote.origin"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "remove section",
"timeout": 60.0
},
{
@@ -31,7 +795,19 @@
"origin",
"https://flutter.googlesource.com/recipes"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "git remote",
"timeout": 600.0
},
@@ -42,7 +818,19 @@
"fetch.uriprotocols",
"https"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "set fetch.uriprotocols",
"timeout": 60.0
},
@@ -61,8 +849,20 @@
"",
"[CACHE]/git/.GUARD_FILE"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.write guard file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -80,8 +880,20 @@
"0777",
"[CACHE]/git/flutter.googlesource.com-recipes"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.makedirs",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -94,6 +906,18 @@
"--bare"
],
"cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.git init",
"timeout": 60.0,
"~followup_annotations": [
@@ -108,6 +932,18 @@
"https://flutter.googlesource.com/recipes"
],
"cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.remote set-url",
"timeout": 60.0,
"~followup_annotations": [
@@ -122,6 +958,18 @@
"https"
],
"cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.set fetch.uriprotocols",
"timeout": 60.0,
"~followup_annotations": [
@@ -138,6 +986,18 @@
"\\+refs/heads/\\*:.*"
],
"cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.replace fetch configs",
"timeout": 60.0,
"~followup_annotations": [
@@ -153,6 +1013,18 @@
"origin"
],
"cwd": "[CACHE]/git/flutter.googlesource.com-recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.git fetch",
"timeout": 1200.0,
"~followup_annotations": [
@@ -169,10 +1041,22 @@
"ensure-directory",
"--mode",
"0777",
- "[START_DIR]/flutter-recipes/.git/objects/info"
+ "[START_DIR]/recipes/.git/objects/info"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.makedirs object/info",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -187,10 +1071,22 @@
"/path/to/tmp/json",
"copy",
"[CACHE]/git/flutter.googlesource.com-recipes/objects\n",
- "[START_DIR]/flutter-recipes/.git/objects/info/alternates"
+ "[START_DIR]/recipes/.git/objects/info/alternates"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.alternates",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
@@ -208,8 +1104,20 @@
"remove",
"[CACHE]/git/.GUARD_FILE"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "cache.remove guard file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -221,9 +1129,21 @@
"fetch",
"--tags",
"origin",
- "main"
+ "refs/changes/56/123456/7"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "git fetch",
"timeout": 1200.0
},
@@ -234,7 +1154,19 @@
"-f",
"FETCH_HEAD"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "git checkout",
"timeout": 600.0
},
@@ -244,7 +1176,19 @@
"rev-parse",
"HEAD"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "git rev-parse",
"timeout": 60.0
},
@@ -256,7 +1200,19 @@
"-d",
"-x"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "git clean",
"timeout": 600.0
},
@@ -270,7 +1226,19 @@
"submodule",
"sync"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "submodule.git submodule sync",
"timeout": 600.0,
"~followup_annotations": [
@@ -286,7 +1254,19 @@
"--jobs",
"4"
],
- "cwd": "[START_DIR]/flutter-recipes",
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "submodule.git submodule update",
"timeout": 600.0,
"~followup_annotations": [
@@ -296,12 +1276,46 @@
{
"cmd": [
"git",
+ "rebase",
+ "deadbeef"
+ ],
+ "cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "git rebase",
+ "timeout": 60.0
+ },
+ {
+ "cmd": [
+ "git",
"log",
"--oneline",
"-n",
"10"
],
"cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "log",
"timeout": 600.0
},
@@ -311,6 +1325,18 @@
"lint"
],
"cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "lint"
},
{
@@ -320,6 +1346,18 @@
"run"
],
"cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "test"
},
{
@@ -334,6 +1372,18 @@
"3m"
],
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "fetch flutter commit-queue.cfg.get access token for default account",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -353,6 +1403,18 @@
"--headers-json",
"{\"Authorization\": \"Bearer extra.secret.token.should.not.be.logged\"}"
],
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "fetch flutter commit-queue.cfg.get",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -402,6 +1464,18 @@
"--recursive"
],
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "get_affected_recipes.ls-recipes",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
@@ -423,6 +1497,18 @@
"HEAD"
],
"cwd": "[START_DIR]/recipes",
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "get_affected_recipes.git diff-tree",
"timeout": 60.0,
"~followup_annotations": [
@@ -445,6 +1531,18 @@
"{\"files\": [\"recipes/fuchsia.py\", \"recipes/foo\", \"recipes/non_expected_json_file.json\"], \"recipes\": [\"fuchsia\", \"recipes\"]}",
"/path/to/tmp/json"
],
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "get_affected_recipes.recipes-analyze",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
@@ -492,6 +1590,18 @@
],
"cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "get builders.flutter/try/flutter-bar.buildbucket.search",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
@@ -527,6 +1637,18 @@
],
"cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "get builders.flutter/try/flutter-baz.buildbucket.search",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
@@ -562,6 +1684,18 @@
],
"cwd": "[START_DIR]/recipes",
"infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
"name": "get builders.flutter/try/flutter-foo.buildbucket.search",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
diff --git a/recipes/recipes.expected/cq_try.json b/recipes/recipes.expected/cq_try.json
index 074c48d..a6395bb 100644
--- a/recipes/recipes.expected/cq_try.json
+++ b/recipes/recipes.expected/cq_try.json
@@ -1,7 +1,177 @@
[
{
"cmd": [],
- "name": "fetch refs/heads/main"
+ "name": "ensure gerrit"
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[fuchsia::gerrit]/resources/tool_manifest.json",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure gerrit.read manifest",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@{@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"path\": \"path/to/gerrit\",@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@ \"version\": \"version:pinned-version\"@@@",
+ "@@@STEP_LOG_LINE@tool_manifest.json@}@@@",
+ "@@@STEP_LOG_END@tool_manifest.json@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "ensure gerrit.install path/to/gerrit",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0777",
+ "[START_DIR]/cipd_tool/path/to/gerrit/version%3Apinned-version"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure gerrit.install path/to/gerrit.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/path/to/gerrit/version%3Apinned-version",
+ "-ensure-file",
+ "path/to/gerrit version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "ensure gerrit.install path/to/gerrit.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:pinned-v\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"path/to/gerrit\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/path/to/gerrit/version%3Apinned-version/gerrit",
+ "change-detail",
+ "-host",
+ "https://flutter-review.googlesource.com",
+ "-input",
+ "{\"change_id\": \"123456\", \"params\": {\"o\": [\"CURRENT_COMMIT\", \"CURRENT_REVISION\"]}}",
+ "-output",
+ "/path/to/tmp/json"
+ ],
+ "luci_context": {
+ "realm": {
+ "name": "project:try"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "details",
+ "timeout": 30,
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"branch\": \"main\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"ffffffffffffffffffffffffffffffffffffffff\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revisions\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ffffffffffffffffffffffffffffffffffffffff\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"commit\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"parents\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {}@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@json.input@{@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"change_id\": \"123456\", @@@",
+ "@@@STEP_LOG_LINE@json.input@ \"params\": {@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"o\": [@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"CURRENT_COMMIT\", @@@",
+ "@@@STEP_LOG_LINE@json.input@ \"CURRENT_REVISION\"@@@",
+ "@@@STEP_LOG_LINE@json.input@ ]@@@",
+ "@@@STEP_LOG_LINE@json.input@ }@@@",
+ "@@@STEP_LOG_LINE@json.input@}@@@",
+ "@@@STEP_LOG_END@json.input@@@",
+ "@@@STEP_LINK@gerrit link@https://flutter-review.googlesource.com/q/123456@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "fetch main"
},
{
"cmd": [
@@ -28,7 +198,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.makedirs",
+ "name": "fetch main.makedirs",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -51,7 +221,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.git init",
+ "name": "fetch main.git init",
"timeout": 60.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -78,7 +248,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.git remote",
+ "name": "fetch main.git remote",
"timeout": 600.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -104,7 +274,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.set fetch.uriprotocols",
+ "name": "fetch main.set fetch.uriprotocols",
"timeout": 60.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -112,7 +282,7 @@
},
{
"cmd": [],
- "name": "fetch refs/heads/main.cache",
+ "name": "fetch main.cache",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -142,7 +312,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.write guard file",
+ "name": "fetch main.cache.write guard file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -173,7 +343,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.makedirs",
+ "name": "fetch main.cache.makedirs",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -197,7 +367,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.git init",
+ "name": "fetch main.cache.git init",
"timeout": 60.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
@@ -223,7 +393,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.remote set-url",
+ "name": "fetch main.cache.remote set-url",
"timeout": 60.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
@@ -249,7 +419,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.set fetch.uriprotocols",
+ "name": "fetch main.cache.set fetch.uriprotocols",
"timeout": 60.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
@@ -277,7 +447,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.replace fetch configs",
+ "name": "fetch main.cache.replace fetch configs",
"timeout": 60.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
@@ -304,7 +474,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.git fetch",
+ "name": "fetch main.cache.git fetch",
"timeout": 1200.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
@@ -336,7 +506,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.makedirs object/info",
+ "name": "fetch main.cache.makedirs object/info",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -366,7 +536,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.alternates",
+ "name": "fetch main.cache.alternates",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@alternates@[CACHE]/git/flutter.googlesource.com-recipes/objects@@@",
@@ -397,7 +567,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.cache.remove guard file",
+ "name": "fetch main.cache.remove guard file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
@@ -423,7 +593,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.git fetch",
+ "name": "fetch main.git fetch",
"timeout": 1200.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -449,7 +619,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.git checkout",
+ "name": "fetch main.git checkout",
"timeout": 600.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -474,7 +644,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.git rev-parse",
+ "name": "fetch main.git rev-parse",
"timeout": 60.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -501,7 +671,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.git clean",
+ "name": "fetch main.git clean",
"timeout": 600.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -509,7 +679,7 @@
},
{
"cmd": [],
- "name": "fetch refs/heads/main.submodule",
+ "name": "fetch main.submodule",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
]
@@ -533,7 +703,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.submodule.git submodule sync",
+ "name": "fetch main.submodule.git submodule sync",
"timeout": 600.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
@@ -561,7 +731,7 @@
"hostname": "rdbhost"
}
},
- "name": "fetch refs/heads/main.submodule.git submodule update",
+ "name": "fetch main.submodule.git submodule update",
"timeout": 600.0,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
diff --git a/recipes/recipes.py b/recipes/recipes.py
index c8430dc..2f70856 100644
--- a/recipes/recipes.py
+++ b/recipes/recipes.py
@@ -17,8 +17,10 @@
'fuchsia/git',
'fuchsia/recipe_testing',
'fuchsia/status_check',
+ 'fuchsia/gerrit',
'recipe_engine/buildbucket',
'recipe_engine/context',
+ 'recipe_engine/json',
'recipe_engine/path',
'recipe_engine/properties',
'recipe_engine/step',
@@ -118,23 +120,39 @@
# TODO(fxbug.dev/88439): Convert this to a proto.
@attr.s
class RecipeTestingOptions(object):
- projects = attr.ib()
- use_buildbucket = attr.ib(default=False)
+ projects = attr.ib()
+ use_buildbucket = attr.ib(default=False)
+
+
+def GetBranch(api, change):
+ details = api.gerrit.change_details(
+ 'details',
+ change_id=str(change.change),
+ host=change.host,
+ max_attempts=5,
+ query_params=['CURRENT_COMMIT', 'CURRENT_REVISION',],
+ timeout=30,
+ test_data=api.json.test_api.output(
+ {
+ 'branch': 'main',
+ 'current_revision': 'f' * 40,
+ 'revisions': {'f' * 40: {'commit': {'parents': [{}],},},},
+ }
+ ),
+ ).json.output
+ return details['branch']
def RunSteps(api, remote, unittest_only):
checkout_path = api.path['start_dir'].join('recipes')
bb_input = api.buildbucket.build.input
- if bb_input.gerrit_changes:
- api.git.checkout_cl(
- bb_input.gerrit_changes[0], checkout_path, onto='refs/heads/main'
- )
- with api.context(cwd=checkout_path):
- api.git('log', 'log', '--oneline', '-n', '10')
- else:
- api.git.checkout(remote, ref='refs/heads/main')
- with api.context(cwd=checkout_path):
- api.git('log', 'log', '--oneline', '-n', '10')
+ branch = GetBranch(api, bb_input.gerrit_changes[0])
+ api.git.checkout_cl(
+ bb_input.gerrit_changes[0], checkout_path,
+ onto=branch
+ )
+ with api.context(cwd=checkout_path):
+ api.git('log', 'log', '--oneline', '-n', '10')
api.recipe_testing.projects = ('flutter',)
with api.step.defer_results():
api.recipe_testing.run_lint(checkout_path)
@@ -155,7 +173,10 @@
api.recipe_testing
.build_data('flutter/try/flutter-bar', 'flutter', skip=True) +
api.recipe_testing
- .build_data('flutter/try/flutter-baz', 'project', skip=True)
+ .build_data('flutter/try/flutter-baz', 'project', skip=True) +
+ api.buildbucket.try_build(
+ git_repo='https://flutter.googlesource.com/recipes'
+ )
)
yield (
api.status_check.test('cq_try') + api.properties(unittest_only=False) +