| [ |
| { |
| "cmd": [ |
| "echo", |
| "Hello World" |
| ], |
| "name": "hello" |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "Why hello, there." |
| ], |
| "name": "hello (2)" |
| }, |
| { |
| "cmd": [ |
| "mkdir", |
| "-p", |
| "something" |
| ], |
| "name": "mk subdir" |
| }, |
| { |
| "cmd": [ |
| "bash", |
| "-c", |
| "echo Why hello, there, in a subdir." |
| ], |
| "cwd": "[START_DIR]/something", |
| "name": "something" |
| }, |
| { |
| "cmd": [ |
| "bash", |
| "-c", |
| "echo what happen" |
| ], |
| "name": "start_dir ignored" |
| }, |
| { |
| "cmd": [ |
| "bash", |
| "-c", |
| "echo Good bye, $friend." |
| ], |
| "env": { |
| "friend": "Darth Vader" |
| }, |
| "name": "goodbye" |
| }, |
| { |
| "cmd": [ |
| "recipes.py", |
| "--help" |
| ], |
| "env": { |
| "PATH": "RECIPE_REPO[recipe_engine]:<PATH>" |
| }, |
| "name": "recipes help" |
| }, |
| { |
| "cmd": [ |
| "bash", |
| "-c", |
| "exit 3" |
| ], |
| "name": "anything is cool" |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "hello" |
| ], |
| "name": "hello (3)", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@the reason@The reason@@@", |
| "@@@STEP_LOG_LINE@the reason@it failed@@@", |
| "@@@STEP_LOG_END@the reason@@@", |
| "@@@STEP_EXCEPTION@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Just print stuff", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@more@More stuff@@@", |
| "@@@STEP_LOG_END@more@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "goodbye" |
| ], |
| "name": "goodbye (2)", |
| "~followup_annotations": [ |
| "@@@STEP_FAILURE@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "RECIPE CRASH (Uncaught exception)", |
| "~followup_annotations": [ |
| "@@@STEP_EXCEPTION@@@", |
| "The recipe has crashed at point 'Uncaught exception'!", |
| "", |
| "Traceback (most recent call last):", |
| " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/engine.py\", line 365, in run_steps", |
| " raw_result = recipe_obj.run_steps(api, engine)", |
| " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/recipe_deps.py\", line 714, in run_steps", |
| " properties_def, api=api)", |
| " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", line 89, in invoke_with_properties", |
| " arg_names, **additional_args)", |
| " File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", line 52, in _invoke_with_properties", |
| " return callable_obj(*props, **additional_args)", |
| " File \"RECIPE_REPO[recipe_engine]/recipe_modules/step/examples/full.py\", line 94, in RunSteps", |
| " raise ValueError('goodbye must exit 0!')", |
| "ValueError: goodbye must exit 0!" |
| ] |
| }, |
| { |
| "failure": { |
| "humanReason": "Uncaught Exception: ValueError('goodbye must exit 0!',)" |
| }, |
| "name": "$result" |
| } |
| ] |