multi_roller: Add ready_labels option
Bug: 338115792
The ready_labels multi_roller option will allow the user to specify
which labels will indicate when a sub-roll is ready to submit.
Change-Id: I36d9d8884bb486eb18b85d1ad02a1d97eb11c211
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/227181
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Samuel Liu <slliu@google.com>
diff --git a/recipes/multi_roller.expected/bypass-presubmit label does not exist.json b/recipes/multi_roller.expected/bypass-presubmit label does not exist.json
new file mode 100644
index 0000000..96cb3a2
--- /dev/null
+++ b/recipes/multi_roller.expected/bypass-presubmit label does not exist.json
@@ -0,0 +1,446 @@
+[
+ {
+ "cmd": [],
+ "name": "Launching Rollers",
+ "~followup_annotations": [
+ "@@@STEP_LINK@roller-1@https://ci.chromium.org/b/1000@@@",
+ "@@@STEP_FAILURE@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "bb",
+ "batch",
+ "-host",
+ "cr-buildbucket.appspot.com"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "fuchsia:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Launching Rollers.schedule",
+ "stdin": "{\"requests\": [{\"scheduleBuild\": {\"builder\": {\"bucket\": \"ci\", \"builder\": \"roller-1\", \"project\": \"fuchsia\"}, \"experimental\": \"NO\", \"experiments\": {\"luci.buildbucket.parent_tracking\": false}, \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"gitilesCommit\": {\"host\": \"fuchsia.googlesource.com\", \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\", \"project\": \"fuchsia\", \"ref\": \"refs/heads/main\"}, \"properties\": {\"override_auto_roller_options\": {\"push_options\": [\"topic=pigweed-s5400-roller-8945511751514863184\"]}}, \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\", \"swarming\": {\"parentRunId\": \"fake-task-id\"}, \"tags\": [{\"key\": \"hide-in-gerrit\", \"value\": \"subbuild\"}, {\"key\": \"parent_buildbucket_id\", \"value\": \"8945511751514863184\"}, {\"key\": \"skip-retry-in-gerrit\", \"value\": \"subbuild\"}, {\"key\": \"user_agent\", \"value\": \"recipe\"}]}}]}",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"responses\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"scheduleBuild\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"bucket\": \"ci\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"roller-1\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"project\": \"fuchsia\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"id\": \"1000\"@@@",
+ "@@@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@request@{@@@",
+ "@@@STEP_LOG_LINE@request@ \"requests\": [@@@",
+ "@@@STEP_LOG_LINE@request@ {@@@",
+ "@@@STEP_LOG_LINE@request@ \"scheduleBuild\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"builder\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"bucket\": \"ci\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"builder\": \"roller-1\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"project\": \"fuchsia\"@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ \"experimental\": \"NO\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"experiments\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"luci.buildbucket.parent_tracking\": false@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"gitilesCommit\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"host\": \"fuchsia.googlesource.com\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"project\": \"fuchsia\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"ref\": \"refs/heads/main\"@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"override_auto_roller_options\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"push_options\": [@@@",
+ "@@@STEP_LOG_LINE@request@ \"topic=pigweed-s5400-roller-8945511751514863184\"@@@",
+ "@@@STEP_LOG_LINE@request@ ]@@@",
+ "@@@STEP_LOG_LINE@request@ }@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ \"requestId\": \"8945511751514863184-00000000-0000-0000-0000-000000001337\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"swarming\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"parentRunId\": \"fake-task-id\"@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@request@ {@@@",
+ "@@@STEP_LOG_LINE@request@ \"key\": \"hide-in-gerrit\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"value\": \"subbuild\"@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ {@@@",
+ "@@@STEP_LOG_LINE@request@ \"key\": \"parent_buildbucket_id\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"value\": \"8945511751514863184\"@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ {@@@",
+ "@@@STEP_LOG_LINE@request@ \"key\": \"skip-retry-in-gerrit\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"value\": \"subbuild\"@@@",
+ "@@@STEP_LOG_LINE@request@ },@@@",
+ "@@@STEP_LOG_LINE@request@ {@@@",
+ "@@@STEP_LOG_LINE@request@ \"key\": \"user_agent\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"value\": \"recipe\"@@@",
+ "@@@STEP_LOG_LINE@request@ }@@@",
+ "@@@STEP_LOG_LINE@request@ ]@@@",
+ "@@@STEP_LOG_LINE@request@ }@@@",
+ "@@@STEP_LOG_LINE@request@ }@@@",
+ "@@@STEP_LOG_LINE@request@ ]@@@",
+ "@@@STEP_LOG_LINE@request@}@@@",
+ "@@@STEP_LOG_END@request@@@",
+ "@@@STEP_LINK@1000@https://cr-buildbucket.appspot.com/build/1000@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Launching Rollers.Get sub-roller change IDs (0)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_SUMMARY_TEXT@Got all change ids: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "bb",
+ "batch",
+ "-host",
+ "cr-buildbucket.appspot.com"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "fuchsia:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Launching Rollers.Get sub-roller change IDs (0).buildbucket.get_multi",
+ "stdin": "{\"requests\": [{\"getBuild\": {\"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\", \"id\": \"1000\"}}]}",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"responses\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"getBuild\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"bucket\": \"ci\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"builder\": \"roller-1\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"project\": \"fuchsia\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"createTime\": \"2018-05-25T23:50:17Z\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"createdBy\": \"user:luci-scheduler@appspot.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"id\": \"1000\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"infra\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"backend\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"task\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"id\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"id\": \"abc123\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"resultdb\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"invocation\": \"invocations/build:1000\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"swarming\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"priority\": 30@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"input\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"gitilesCommit\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"host\": \"chromium.googlesource.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"id\": \"2d72510e447ab60a9728aeea2362d8be2cbd7789\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"project\": \"fuchsia\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"refs/heads/main\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"output\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"gerrit_changes\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"change_id\": \"11111111\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"host\": \"change_host_1\"@@@",
+ "@@@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@ \"status\": \"SUCCESS\"@@@",
+ "@@@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@request@{@@@",
+ "@@@STEP_LOG_LINE@request@ \"requests\": [@@@",
+ "@@@STEP_LOG_LINE@request@ {@@@",
+ "@@@STEP_LOG_LINE@request@ \"getBuild\": {@@@",
+ "@@@STEP_LOG_LINE@request@ \"fields\": \"builder,createTime,createdBy,critical,endTime,id,infra,input,number,output,startTime,status,updateTime\",@@@",
+ "@@@STEP_LOG_LINE@request@ \"id\": \"1000\"@@@",
+ "@@@STEP_LOG_LINE@request@ }@@@",
+ "@@@STEP_LOG_LINE@request@ }@@@",
+ "@@@STEP_LOG_LINE@request@ ]@@@",
+ "@@@STEP_LOG_LINE@request@}@@@",
+ "@@@STEP_LOG_END@request@@@",
+ "@@@STEP_LINK@1000@https://cr-buildbucket.appspot.com/build/1000@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Launching Rollers.Get sub-roller change IDs (0).got changes for 1000",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LINK@1000@https://ci.chromium.org/ui/b/1000@@@",
+ "@@@STEP_LINK@change_host_1:11111111@https://change_host_1-review.googlesource.com/q/11111111@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0)",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_SUMMARY_TEXT@Waiting on Bypass-Presubmit or Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "copy",
+ "RECIPE_MODULE[fuchsia::gerrit]/resources/cipd.ensure",
+ "/path/to/tmp/"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "fuchsia:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@4@@@",
+ "@@@STEP_LOG_LINE@cipd.ensure@infra/tools/luci/gerrit/${platform} version:pinned-version@@@",
+ "@@@STEP_LOG_END@cipd.ensure@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "vpython3",
+ "-u",
+ "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+ "--json-output",
+ "/path/to/tmp/json",
+ "ensure-directory",
+ "--mode",
+ "0o777",
+ "[START_DIR]/cipd_tool/infra/tools/luci/gerrit/0e548aa33f8113a45a5b3b62201e114e98e63d00f97296912380138f44597b07"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "fuchsia:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@4@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "ensure",
+ "-root",
+ "[START_DIR]/cipd_tool/infra/tools/luci/gerrit/0e548aa33f8113a45a5b3b62201e114e98e63d00f97296912380138f44597b07",
+ "-ensure-file",
+ "infra/tools/luci/gerrit/${platform} version:pinned-version",
+ "-max-threads",
+ "0",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "fuchsia:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@4@@@",
+ "@@@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\": \"infra/tools/luci/gerrit/resolved-platform\"@@@",
+ "@@@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/infra/tools/luci/gerrit/0e548aa33f8113a45a5b3b62201e114e98e63d00f97296912380138f44597b07/gerrit",
+ "change-detail",
+ "-host",
+ "https://change_host_1-review.googlesource.com",
+ "-input",
+ "{\"change_id\": \"11111111\"}",
+ "-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "fuchsia:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "timeout": 600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {}@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"status\": \"NEW\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@json.input@{@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"change_id\": \"11111111\"@@@",
+ "@@@STEP_LOG_LINE@json.input@}@@@",
+ "@@@STEP_LOG_END@json.input@@@",
+ "@@@STEP_LINK@gerrit link@https://change_host_1-review.googlesource.com/q/11111111@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Check CL 11111111",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
+ "@@@STEP_SUMMARY_TEXT@Bypass-Presubmit label does not exist@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "[START_DIR]/cipd_tool/infra/tools/luci/gerrit/0e548aa33f8113a45a5b3b62201e114e98e63d00f97296912380138f44597b07/gerrit",
+ "set-review",
+ "-host",
+ "https://change_host_1-review.googlesource.com",
+ "-input",
+ "{\"change_id\": \"11111111\", \"input\": {\"labels\": {\"Rolls-Synced\": -1}, \"tag\": \"autogenerated:fuchsia:builder:bbid=8945511751514863184\"}, \"revision_id\": \"current\"}",
+ "-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "luci_context": {
+ "realm": {
+ "name": "fuchsia:ci"
+ },
+ "resultdb": {
+ "current_invocation": {
+ "name": "invocations/build:8945511751514863184",
+ "update_token": "token"
+ },
+ "hostname": "rdbhost"
+ }
+ },
+ "name": "Launching Rollers.Set Rolls-Synced -1 on 11111111",
+ "timeout": 600,
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_LOG_LINE@json.output@{}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@json.input@{@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"change_id\": \"11111111\",@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"input\": {@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"Rolls-Synced\": -1@@@",
+ "@@@STEP_LOG_LINE@json.input@ },@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"tag\": \"autogenerated:fuchsia:builder:bbid=8945511751514863184\"@@@",
+ "@@@STEP_LOG_LINE@json.input@ },@@@",
+ "@@@STEP_LOG_LINE@json.input@ \"revision_id\": \"current\"@@@",
+ "@@@STEP_LOG_LINE@json.input@}@@@",
+ "@@@STEP_LOG_END@json.input@@@",
+ "@@@STEP_LINK@gerrit link@https://change_host_1-review.googlesource.com/q/11111111@@@"
+ ]
+ },
+ {
+ "failure": {
+ "failure": {},
+ "humanReason": "Some roller presubmits failed."
+ },
+ "name": "$result"
+ }
+]
\ No newline at end of file
diff --git a/recipes/multi_roller.expected/check for presubmit-verified timeout.json b/recipes/multi_roller.expected/check for presubmit-verified timeout.json
index 912e0dd..343b9ac 100644
--- a/recipes/multi_roller.expected/check for presubmit-verified timeout.json
+++ b/recipes/multi_roller.expected/check for presubmit-verified timeout.json
@@ -211,22 +211,22 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0)",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_SUMMARY_TEXT@Waiting on Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
+ "@@@STEP_SUMMARY_TEXT@Waiting on Bypass-Presubmit or Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -255,7 +255,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@cipd.ensure@infra/tools/luci/gerrit/${platform} version:pinned-version@@@",
@@ -264,7 +264,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -294,7 +294,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@"
]
@@ -325,7 +325,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
@@ -365,13 +365,14 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {},@@@",
"@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {}@@@",
"@@@STEP_LOG_LINE@json.output@ },@@@",
"@@@STEP_LOG_LINE@json.output@ \"status\": \"NEW\"@@@",
@@ -386,10 +387,10 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Check CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Check CL 11111111",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_SUMMARY_TEXT@Presubmit-Verified not set@@@"
+ "@@@STEP_SUMMARY_TEXT@Bypass-Presubmit or Presubmit-Verified not set@@@"
]
},
{
diff --git a/recipes/multi_roller.expected/presubmit fails.json b/recipes/multi_roller.expected/presubmit fails.json
index d9ea3d4..31c4468 100644
--- a/recipes/multi_roller.expected/presubmit fails.json
+++ b/recipes/multi_roller.expected/presubmit fails.json
@@ -211,22 +211,22 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0)",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_SUMMARY_TEXT@Waiting on Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
+ "@@@STEP_SUMMARY_TEXT@Waiting on Bypass-Presubmit or Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -255,7 +255,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@cipd.ensure@infra/tools/luci/gerrit/${platform} version:pinned-version@@@",
@@ -264,7 +264,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -294,7 +294,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@"
]
@@ -325,7 +325,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
@@ -365,13 +365,14 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {},@@@",
"@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"rejected\": {}@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
@@ -388,10 +389,10 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Check CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Check CL 11111111",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_SUMMARY_TEXT@Presubmit checks failed@@@"
+ "@@@STEP_SUMMARY_TEXT@Roll failed. Presubmit-Verified label set to {'rejected': {}}@@@"
]
},
{
diff --git a/recipes/multi_roller.expected/presubmit-verified label does not exist.json b/recipes/multi_roller.expected/presubmit-verified label does not exist.json
index 77a80d5..81c2d2f 100644
--- a/recipes/multi_roller.expected/presubmit-verified label does not exist.json
+++ b/recipes/multi_roller.expected/presubmit-verified label does not exist.json
@@ -211,22 +211,22 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0)",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_SUMMARY_TEXT@Waiting on Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
+ "@@@STEP_SUMMARY_TEXT@Waiting on Bypass-Presubmit or Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -255,7 +255,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@cipd.ensure@infra/tools/luci/gerrit/${platform} version:pinned-version@@@",
@@ -264,7 +264,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -294,7 +294,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@"
]
@@ -325,7 +325,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
@@ -365,13 +365,15 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
- "@@@STEP_LOG_LINE@json.output@ \"labels\": {},@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {}@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
"@@@STEP_LOG_LINE@json.output@ \"status\": \"NEW\"@@@",
"@@@STEP_LOG_LINE@json.output@}@@@",
"@@@STEP_LOG_END@json.output@@@",
@@ -384,10 +386,10 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Check CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Check CL 11111111",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_SUMMARY_TEXT@f{PRESUBMIT_VERIFIED_LABEL} does not exist@@@"
+ "@@@STEP_SUMMARY_TEXT@Presubmit-Verified label does not exist@@@"
]
},
{
diff --git a/recipes/multi_roller.expected/roll CL manually abandoned.json b/recipes/multi_roller.expected/roll CL manually abandoned.json
index 59ea01c..0c21d38 100644
--- a/recipes/multi_roller.expected/roll CL manually abandoned.json
+++ b/recipes/multi_roller.expected/roll CL manually abandoned.json
@@ -211,22 +211,22 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0)",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_SUMMARY_TEXT@Waiting on Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
+ "@@@STEP_SUMMARY_TEXT@Waiting on Bypass-Presubmit or Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111')]@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -255,7 +255,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@cipd.ensure@infra/tools/luci/gerrit/${platform} version:pinned-version@@@",
@@ -264,7 +264,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -294,7 +294,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@"
]
@@ -325,7 +325,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
@@ -365,13 +365,14 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {},@@@",
"@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"approved\": {}@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
@@ -388,7 +389,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Roll CL 11111111 was manually abandoned.",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Roll CL 11111111 was manually abandoned.",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
diff --git a/recipes/multi_roller.expected/roll CL manually merged.json b/recipes/multi_roller.expected/roll CL manually merged.json
index 5f90c2e..b8c3912 100644
--- a/recipes/multi_roller.expected/roll CL manually merged.json
+++ b/recipes/multi_roller.expected/roll CL manually merged.json
@@ -210,22 +210,22 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0)",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_SUMMARY_TEXT@All roll CLs have Presubmit-Verified@@@"
+ "@@@STEP_SUMMARY_TEXT@All roll CLs have Bypass-Presubmit or Presubmit-Verified!@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -254,7 +254,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@cipd.ensure@infra/tools/luci/gerrit/${platform} version:pinned-version@@@",
@@ -263,7 +263,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -293,7 +293,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@"
]
@@ -324,7 +324,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
@@ -364,13 +364,14 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {},@@@",
"@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"approved\": {}@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
@@ -387,7 +388,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Roll CL 11111111 was manually merged.",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Roll CL 11111111 was manually merged.",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
diff --git a/recipes/multi_roller.expected/success with two sub-rollers.json b/recipes/multi_roller.expected/success with two sub-rollers.json
index f883d8b..04eb135 100644
--- a/recipes/multi_roller.expected/success with two sub-rollers.json
+++ b/recipes/multi_roller.expected/success with two sub-rollers.json
@@ -419,22 +419,22 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0)",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_SUMMARY_TEXT@Waiting on Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111'), GerritChange(host='change_host_2', change_id='22222222')]@@@"
+ "@@@STEP_SUMMARY_TEXT@Waiting on Bypass-Presubmit or Presubmit-Verified for: [GerritChange(host='change_host_1', change_id='11111111'), GerritChange(host='change_host_2', change_id='22222222')]@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -463,7 +463,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.get packages.read ensure file",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@cipd.ensure@infra/tools/luci/gerrit/${platform} version:pinned-version@@@",
@@ -472,7 +472,7 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@3@@@"
]
@@ -502,7 +502,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure package directory",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@"
]
@@ -533,7 +533,7 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).ensure infra/tools/luci/gerrit/${platform}.install infra/tools/luci/gerrit.ensure_installed",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@4@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
@@ -573,16 +573,17 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {@@@",
- "@@@STEP_LOG_LINE@json.output@ \"approved\": {}@@@",
- "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"recommended\": {}@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {}@@@",
"@@@STEP_LOG_LINE@json.output@ },@@@",
"@@@STEP_LOG_LINE@json.output@ \"status\": \"NEW\"@@@",
"@@@STEP_LOG_LINE@json.output@}@@@",
@@ -596,10 +597,10 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Check CL 11111111",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Check CL 11111111",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_SUMMARY_TEXT@Presubmit checks passed@@@"
+ "@@@STEP_SUMMARY_TEXT@Ready to submit. Bypass-Presubmit label detected with score {'recommended': {}}.@@@"
]
},
{
@@ -626,13 +627,14 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 22222222",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 22222222",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {},@@@",
"@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {}@@@",
"@@@STEP_LOG_LINE@json.output@ },@@@",
"@@@STEP_LOG_LINE@json.output@ \"status\": \"NEW\"@@@",
@@ -647,18 +649,18 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Check CL 22222222",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Check CL 22222222",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_SUMMARY_TEXT@Presubmit-Verified not set@@@"
+ "@@@STEP_SUMMARY_TEXT@Bypass-Presubmit or Presubmit-Verified not set@@@"
]
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (1)",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (1)",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@",
- "@@@STEP_SUMMARY_TEXT@All roll CLs have Presubmit-Verified@@@"
+ "@@@STEP_SUMMARY_TEXT@All roll CLs have Bypass-Presubmit or Presubmit-Verified!@@@"
]
},
{
@@ -685,13 +687,14 @@
"hostname": "rdbhost"
}
},
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (1).Get CL details for CL 22222222",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (1).Get CL details for CL 22222222",
"timeout": 600,
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_LOG_LINE@json.output@{@@@",
"@@@STEP_LOG_LINE@json.output@ \"current_revision\": \"abc\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"labels\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"Bypass-Presubmit\": {},@@@",
"@@@STEP_LOG_LINE@json.output@ \"Presubmit-Verified\": {@@@",
"@@@STEP_LOG_LINE@json.output@ \"approved\": {}@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
@@ -708,10 +711,10 @@
},
{
"cmd": [],
- "name": "Launching Rollers.Wait for Presubmit-Verified for roll CLs (1).Check CL 22222222",
+ "name": "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (1).Check CL 22222222",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@2@@@",
- "@@@STEP_SUMMARY_TEXT@Presubmit checks passed@@@"
+ "@@@STEP_SUMMARY_TEXT@Ready to submit. Presubmit-Verified label detected with score {'approved': {}}.@@@"
]
},
{
diff --git a/recipes/multi_roller.proto b/recipes/multi_roller.proto
index 21bf639..f150c4b 100644
--- a/recipes/multi_roller.proto
+++ b/recipes/multi_roller.proto
@@ -39,4 +39,14 @@
// Gerrit Label to indicate when a roll CL is synced with the other roll
// CLs in its multi_roller group.
string rolls_synced_label = 3;
+
+ // Labels that indicate that a sub-roll is ready to be submitted.
+ // If a sub-roll has ANY of the labels in ready_labels with a
+ // score of "approved" (or also "recommended" if the permit_recommended
+ // option is set to True), then it is ready.
+ repeated string ready_labels = 4;
+
+ // Treat "recommended" votes on labels_to_wait_on as "approved" votes.
+ bool permit_recommended = 5;
+
}
\ No newline at end of file
diff --git a/recipes/multi_roller.py b/recipes/multi_roller.py
index f602ec4..33b32e7 100644
--- a/recipes/multi_roller.py
+++ b/recipes/multi_roller.py
@@ -37,8 +37,6 @@
PROPERTIES = InputProperties
LABEL_STATUSES = ("rejected", "approved", "disliked", "recommended")
-PRESUBMIT_VERIFIED_LABEL = "Presubmit-Verified"
-
DEFAULT_POLL_INTERVAL_SECONDS = 5 * 60
@@ -186,14 +184,21 @@
Returns:
Whether or not all sub-roller CLs passed presubmits.
"""
- success_status = {"approved"}
- failure_status = set(LABEL_STATUSES) - success_status
+ success_statuses = {"approved"}
+ if props.permit_recommended:
+ success_statuses.add("recommended")
+ failure_statuses = set(LABEL_STATUSES) - success_statuses
+
+ ready_labels: list[str] = props.ready_labels
+ ready_labels_text = " or ".join(ready_labels)
remaining_rollers: list[GerritChange] = list(roller_changes)
for i in itertools.count():
with api.step.nest(
- f"Wait for {PRESUBMIT_VERIFIED_LABEL} for roll CLs ({i})"
+ f"Wait for {ready_labels_text} for roll CLs ({i})"
) as pres:
- pres.step_summary_text = f"Waiting on {PRESUBMIT_VERIFIED_LABEL} for: {remaining_rollers}"
+ pres.step_summary_text = (
+ f"Waiting on {ready_labels_text} for: {remaining_rollers}"
+ )
for change in list(remaining_rollers):
step = api.gerrit.change_details(
f"Get CL details for CL {change.change_id}",
@@ -219,29 +224,42 @@
f"Check CL {change.change_id}"
) as label_pres:
label_pres.step_summary_text = (
- f"{PRESUBMIT_VERIFIED_LABEL} not set"
+ f"{ready_labels_text} not set"
)
- if PRESUBMIT_VERIFIED_LABEL not in details["labels"]:
- label_pres.step_summary_text = (
- "f{PRESUBMIT_VERIFIED_LABEL} does not exist"
- )
- return False
- if failure_status.intersection(
- details["labels"][PRESUBMIT_VERIFIED_LABEL]
- ):
- label_pres.step_summary_text = "Presubmit checks failed"
- return False
+ # Check if this roll CL is ready to submit.
+ for label in ready_labels:
+ # Ensure label exists.
+ if label not in details["labels"]:
+ label_pres.step_summary_text = (
+ f"{label} label does not exist"
+ )
+ return False
- if success_status.intersection(
- details["labels"][PRESUBMIT_VERIFIED_LABEL]
- ):
- label_pres.step_summary_text = "Presubmit checks passed"
- remaining_rollers.remove(change)
+ label_score = details["labels"][label]
+
+ # If label is not set yet, ignore it.
+ if not label_score:
+ continue
+
+ if failure_statuses.intersection(label_score):
+ label_pres.step_summary_text = (
+ f"Roll failed. {label} "
+ f"label set to {label_score}"
+ )
+ return False
+
+ # Roll CL has one of the labels indicating it is ready.
+ if success_statuses.intersection(label_score):
+ label_pres.step_summary_text = (
+ f"Ready to submit. {label} label "
+ f"detected with score {label_score}."
+ )
+ remaining_rollers.remove(change)
if not remaining_rollers:
pres.step_summary_text = (
- f"All roll CLs have {PRESUBMIT_VERIFIED_LABEL}"
+ f"All roll CLs have {ready_labels_text}!"
)
return True
@@ -286,6 +304,8 @@
props.rollers_to_launch.extend(list(builders))
props.poll_interval_secs = 5
props.rolls_synced_label = "Rolls-Synced"
+ props.ready_labels.extend(["Bypass-Presubmit", "Presubmit-Verified"])
+ props.permit_recommended = True
return api.properties(props)
def simulate_subroller_launch(builds, launch_step="Launching Rollers"):
@@ -351,37 +371,40 @@
launch_step="Launching Rollers.Get sub-roller change IDs (1)",
)
+ api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
api.json.output(
{
"current_revision": "abc",
"status": "NEW",
"labels": {
- "Presubmit-Verified": {"approved": {}},
- },
- }
- ),
- )
- + api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 22222222",
- api.json.output(
- {
- "current_revision": "abc",
- "status": "NEW",
- "labels": {
- # Presubmit-Verified label doesn't have a vote yet!
+ "Bypass-Presubmit": {"recommended": {}},
"Presubmit-Verified": {},
},
}
),
)
+ api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (1).Get CL details for CL 22222222",
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 22222222",
api.json.output(
{
"current_revision": "abc",
"status": "NEW",
"labels": {
+ # Presubmit-Verified label doesn't have a vote yet!
+ "Bypass-Presubmit": {},
+ "Presubmit-Verified": {},
+ },
+ }
+ ),
+ )
+ + api.step_data(
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (1).Get CL details for CL 22222222",
+ api.json.output(
+ {
+ "current_revision": "abc",
+ "status": "NEW",
+ "labels": {
+ "Bypass-Presubmit": {},
"Presubmit-Verified": {"approved": {}},
},
}
@@ -410,12 +433,13 @@
launch_step="Launching Rollers.Get sub-roller change IDs (0)",
)
+ api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
api.json.output(
{
"current_revision": "abc",
"status": "NEW",
"labels": {
+ "Bypass-Presubmit": {},
"Presubmit-Verified": {"rejected": {}},
},
}
@@ -444,12 +468,13 @@
launch_step="Launching Rollers.Get sub-roller change IDs (0)",
)
+ api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
api.json.output(
{
"current_revision": "abc",
"status": "MERGED",
"labels": {
+ "Bypass-Presubmit": {},
"Presubmit-Verified": {"approved": {}},
},
}
@@ -478,12 +503,13 @@
launch_step="Launching Rollers.Get sub-roller change IDs (0)",
)
+ api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
api.json.output(
{
"current_revision": "abc",
"status": "ABANDONED",
"labels": {
+ "Bypass-Presubmit": {},
"Presubmit-Verified": {"approved": {}},
},
}
@@ -512,12 +538,48 @@
launch_step="Launching Rollers.Get sub-roller change IDs (0)",
)
+ api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
api.json.output(
{
"current_revision": "abc",
"status": "NEW",
- "labels": {},
+ "labels": {
+ "Bypass-Presubmit": {},
+ },
+ }
+ ),
+ )
+ )
+
+ yield (
+ test("bypass-presubmit label does not exist", status="FAILURE")
+ + properties(builder("roller-1"))
+ + simulate_subroller_launch(
+ builds=[result_ci(name="roller-1", id=1000)],
+ )
+ + simulate_get_multi(
+ builds=[
+ result_ci(
+ name="roller-1",
+ id=1000,
+ output_props={
+ "gerrit_changes": [
+ {"host": "change_host_1", "change_id": "11111111"}
+ ]
+ },
+ )
+ ],
+ launch_step="Launching Rollers.Get sub-roller change IDs (0)",
+ )
+ + api.step_data(
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ api.json.output(
+ {
+ "current_revision": "abc",
+ "status": "NEW",
+ "labels": {
+ "Presubmit-Verified": {},
+ },
}
),
)
@@ -566,12 +628,13 @@
launch_step="Launching Rollers.Get sub-roller change IDs (0)",
)
+ api.step_data(
- "Launching Rollers.Wait for Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
+ "Launching Rollers.Wait for Bypass-Presubmit or Presubmit-Verified for roll CLs (0).Get CL details for CL 11111111",
api.json.output(
{
"current_revision": "abc",
"status": "NEW",
"labels": {
+ "Bypass-Presubmit": {},
"Presubmit-Verified": {},
},
}