| [ |
| { |
| "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)" |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "warning" |
| ], |
| "name": "warning" |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "testa" |
| ], |
| "name": "testa" |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "testb" |
| ], |
| "infra_step": true, |
| "name": "testb" |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "cleaning", |
| "up", |
| "build" |
| ], |
| "infra_step": true, |
| "name": "cleanup" |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-c", |
| "import sys; print sys.argv", |
| "echo", |
| "main", |
| "application" |
| ], |
| "name": "application" |
| }, |
| { |
| "cmd": [ |
| "echo", |
| "I", |
| "do", |
| "nothing" |
| ], |
| "name": "no-op" |
| }, |
| { |
| "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 137, in RunSteps", |
| " result.json = \"hi\"", |
| " File \"RECIPE_REPO[recipe_engine]/recipe_engine/step_data.py\", line 334, in __setattr__", |
| " (name, self.name))", |
| "ValueError: Cannot assign to 'json' on finalized StepData from step 'no-op'" |
| ] |
| }, |
| { |
| "failure": { |
| "humanReason": "Uncaught Exception: ValueError(\"Cannot assign to 'json' on finalized StepData from step 'no-op'\",)" |
| }, |
| "name": "$result" |
| } |
| ] |