blob: e79b2e0819aee56d9e3d6b3ca6ead8738dd5a3d1 [file] [log] [blame]
[
{
"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",
"~followup_annotations": [
"@@@STEP_FAILURE@@@"
]
},
{
"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_END@proto.output (invalid)@@@",
"@@@STEP_LOG_LINE@proto.output (exception)@Failed to load JSON: No JSON object could be decoded.@@@",
"@@@STEP_LOG_END@proto.output (exception)@@@",
"@@@STEP_FAILURE@@@"
]
},
{
"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",
"--cc=foo@chromium.org",
"--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"
}
]