| [ |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "rmtree", |
| "[CACHE]/builder/recipe_engine" |
| ], |
| "infra_step": true, |
| "name": "ensure recipe_dir gone" |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0777", |
| "[CACHE]/builder" |
| ], |
| "infra_step": true, |
| "name": "ensure builder cache dir exists" |
| }, |
| { |
| "cmd": [ |
| "git", |
| "clone", |
| "--depth", |
| "1", |
| "https://chromium.googlesource.com/infra/luci/recipes-py", |
| "[CACHE]/builder/recipe_engine" |
| ], |
| "cwd": "[CACHE]/builder", |
| "infra_step": true, |
| "name": "clone recipe engine" |
| }, |
| { |
| "cmd": [], |
| "name": "build" |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", |
| "--path", |
| "[CACHE]/builder/recipe_autoroller/build", |
| "--url", |
| "https://example.com/build.git" |
| ], |
| "name": "build.git setup", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "fetch", |
| "origin", |
| "master", |
| "--progress" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "env": { |
| "PATH": "RECIPE_REPO[depot_tools]:<PATH>" |
| }, |
| "infra_step": true, |
| "name": "build.git fetch", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "checkout", |
| "-f", |
| "FETCH_HEAD" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "infra_step": true, |
| "name": "build.git checkout", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "rev-parse", |
| "HEAD" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "infra_step": true, |
| "name": "build.read revision", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "clean", |
| "-f", |
| "-d", |
| "-x" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "infra_step": true, |
| "name": "build.git clean", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "config", |
| "user.name", |
| "recipe-roller" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "infra_step": true, |
| "name": "build.git config", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "branch", |
| "-D", |
| "roll" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "infra_step": true, |
| "name": "build.git branch", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "new-branch", |
| "roll" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "env_suffixes": { |
| "DEPOT_TOOLS_UPDATE": [ |
| "0" |
| ], |
| "PATH": [ |
| "RECIPE_REPO[depot_tools]" |
| ] |
| }, |
| "infra_step": true, |
| "name": "build.git new-branch", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", |
| "[CACHE]/builder/recipe_autoroller/build/infra/config/recipes.cfg", |
| "/path/to/tmp/json" |
| ], |
| "name": "build.read recipes.cfg", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LOG_LINE@json.output@{@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"api_version\": 2, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"autoroll_recipe_options\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"disable_reason\": \"\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"no_cc_authors\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"nontrivial\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"automatic_commit_dry_run\": true, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"extra_reviewer_emails\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@chromium.org\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@bar.example.com\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"meep@example.com\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ], @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"set_autosubmit\": true@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"trivial\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"automatic_commit\": true, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"bot_commit\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"dry_run\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"tbr_emails\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@bar.example.com\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"meep@example.com\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ]@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"deps\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"recipe_engine\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"url\": \"https://chromium.googlesource.com/infra/luci/recipes-py\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@}@@@", |
| "@@@STEP_LOG_END@json.output@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", |
| "--", |
| "RECIPE_REPO[depot_tools]/gsutil.py", |
| "----", |
| "cat", |
| "gs://recipe-mega-roller-crappy-db/repo_metadata/aHR0cHM6Ly9leGFtcGxlLmNvbS9idWlsZC5naXQ=" |
| ], |
| "infra_step": true, |
| "name": "build.gsutil repo_state", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LOG_LINE@stderr@No URLs matched@@@", |
| "@@@STEP_LOG_END@stderr@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "[CACHE]/builder/recipe_engine/recipes.py", |
| "--package", |
| "[CACHE]/builder/recipe_autoroller/build/infra/config/recipes.cfg", |
| "autoroll", |
| "--output-json", |
| "/path/to/tmp/json" |
| ], |
| "name": "build.roll", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_TEXT@ (trivial)@@@", |
| "@@@STEP_LOG_LINE@json.output@{@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"picked_roll_details\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"commit_infos\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"recipe_engine\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"author_email\": \"foo@chromium.org\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"message_lines\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"some commit summary that is too long to fit in a single line in Gerrit\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"R=bar@chromium.org,baz@chromium.org,invalid1,invalid2@chromium\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"BUG=123,456\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ], @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"revision\": \"123abc\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ ]@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"spec\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"api_version\": 2, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"autoroll_recipe_options\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"disable_reason\": \"\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"no_cc_authors\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"nontrivial\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"automatic_commit_dry_run\": true, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"extra_reviewer_emails\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@chromium.org\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@bar.example.com\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"meep@example.com\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ], @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"set_autosubmit\": true@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"trivial\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"automatic_commit\": true, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"bot_commit\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"dry_run\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"tbr_emails\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@bar.example.com\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"meep@example.com\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ]@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"deps\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"recipe_engine\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"url\": \"https://chromium.googlesource.com/infra/luci/recipes-py\"@@@", |
| "@@@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@ \"rejected_candidates_count\": 0, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"roll_details\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"commit_infos\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"recipe_engine\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"author_email\": \"foo@chromium.org\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"message_lines\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"some commit summary that is too long to fit in a single line in Gerrit\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"R=bar@chromium.org,baz@chromium.org,invalid1,invalid2@chromium\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"BUG=123,456\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ], @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"revision\": \"123abc\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ ]@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"spec\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"api_version\": 2, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"autoroll_recipe_options\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"disable_reason\": \"\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"no_cc_authors\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"nontrivial\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"automatic_commit_dry_run\": true, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"extra_reviewer_emails\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@chromium.org\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@bar.example.com\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"meep@example.com\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ], @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"set_autosubmit\": true@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"trivial\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"automatic_commit\": true, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"bot_commit\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"dry_run\": false, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"tbr_emails\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"foo@bar.example.com\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"meep@example.com\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ ]@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"deps\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"recipe_engine\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"url\": \"https://chromium.googlesource.com/infra/luci/recipes-py\"@@@", |
| "@@@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@ \"success\": true, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"trivial\": true@@@", |
| "@@@STEP_LOG_LINE@json.output@}@@@", |
| "@@@STEP_LOG_END@json.output@@@", |
| "@@@STEP_LOG_LINE@commit_message@Roll recipe dependencies (trivial).@@@", |
| "@@@STEP_LOG_LINE@commit_message@@@@", |
| "@@@STEP_LOG_LINE@commit_message@This is an automated CL created by the recipe roller. This CL rolls@@@", |
| "@@@STEP_LOG_LINE@commit_message@recipe changes from upstream projects (recipe_engine) into this repository.@@@", |
| "@@@STEP_LOG_LINE@commit_message@@@@", |
| "@@@STEP_LOG_LINE@commit_message@recipe_engine:@@@", |
| "@@@STEP_LOG_LINE@commit_message@https://chromium.googlesource.com/infra/luci/recipes-py/+/123abc@@@", |
| "@@@STEP_LOG_LINE@commit_message@ 123abc (foo@chromium.org)@@@", |
| "@@@STEP_LOG_LINE@commit_message@ some commit summary that is too long to fit in a single line in...@@@", |
| "@@@STEP_LOG_LINE@commit_message@@@@", |
| "@@@STEP_LOG_LINE@commit_message@More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.@@@", |
| "@@@STEP_LOG_LINE@commit_message@@@@", |
| "@@@STEP_LOG_LINE@commit_message@Recipe-Tryjob-Bypass-Reason: Autoroller@@@", |
| "@@@STEP_LOG_LINE@commit_message@Bugdroid-Send-Email: False@@@", |
| "@@@STEP_LOG_END@commit_message@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "[CACHE]/builder/recipe_engine/recipes.py", |
| "--package", |
| "[CACHE]/builder/recipe_autoroller/build/infra/config/recipes.cfg", |
| "dump_specs" |
| ], |
| "name": "build.get deps", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LOG_LINE@proto.output@{@@@", |
| "@@@STEP_LOG_LINE@proto.output@ \"repo_specs\": {@@@", |
| "@@@STEP_LOG_LINE@proto.output@ \"recipe_engine\": {@@@", |
| "@@@STEP_LOG_LINE@proto.output@ \"autoroll_recipe_options\": {@@@", |
| "@@@STEP_LOG_LINE@proto.output@ \"no_cc_authors\": true@@@", |
| "@@@STEP_LOG_LINE@proto.output@ }@@@", |
| "@@@STEP_LOG_LINE@proto.output@ }@@@", |
| "@@@STEP_LOG_LINE@proto.output@ }@@@", |
| "@@@STEP_LOG_LINE@proto.output@}@@@", |
| "@@@STEP_LOG_END@proto.output@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "git", |
| "commit", |
| "-a", |
| "-m", |
| "roll recipes.cfg" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "infra_step": true, |
| "name": "build.git commit", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_REPO[depot_tools]/git_cl.py", |
| "upload", |
| "--send-mail", |
| "--set-bot-commit", |
| "-r", |
| "meep@example.com", |
| "--r-owners", |
| "--use-commit-queue", |
| "--bypass-hooks", |
| "-f", |
| "--message-file", |
| "Roll recipe dependencies (trivial).\n\nThis is an automated CL created by the recipe roller. This CL rolls\nrecipe changes from upstream projects (recipe_engine) into this repository.\n\nrecipe_engine:\nhttps://chromium.googlesource.com/infra/luci/recipes-py/+/123abc\n 123abc (foo@chromium.org)\n some commit summary that is too long to fit in a single line in...\n\nMore info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.\n\nRecipe-Tryjob-Bypass-Reason: Autoroller\nBugdroid-Send-Email: False\n" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "name": "build.git cl upload", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_REPO[depot_tools]/git_cl.py", |
| "issue", |
| "--json", |
| "/path/to/tmp/json" |
| ], |
| "cwd": "[CACHE]/builder/recipe_autoroller/build", |
| "name": "build.git cl issue", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LOG_LINE@json.output@{@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"issue\": 123456789, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"issue_url\": \"https://codereview.chromium.org/123456789\"@@@", |
| "@@@STEP_LOG_LINE@json.output@}@@@", |
| "@@@STEP_LOG_END@json.output@@@", |
| "@@@STEP_LINK@Issue 123456789@https://codereview.chromium.org/123456789@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", |
| "--", |
| "RECIPE_REPO[depot_tools]/gsutil.py", |
| "----", |
| "cp", |
| "{\"issue\": \"123456789\", \"issue_url\": \"https://codereview.chromium.org/123456789\", \"last_roll_ts_utc\": \"2012-05-14T12:53:21\", \"trivial\": true}", |
| "gs://recipe-mega-roller-crappy-db/repo_metadata/aHR0cHM6Ly9leGFtcGxlLmNvbS9idWlsZC5naXQ=" |
| ], |
| "infra_step": true, |
| "name": "build.gsutil upload", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/recipe-mega-roller-crappy-db/repo_metadata/aHR0cHM6Ly9leGFtcGxlLmNvbS9idWlsZC5naXQ=@@@" |
| ] |
| }, |
| { |
| "name": "$result" |
| } |
| ] |