Exit result per step
note that for one step, there will be only one return, which will be the last line in do cmd in this case. Since the step3 exit code is 0 the whole step will have the return code of 0 if you need to use the exit code of the step you need to consider to reduce the number of do cmds or put it to last step, this is not a bug this is a feature
Demo
source
Main task yaml file
tasks:
- name: task
task:
- func: shell
desc: do step1 in shell func
do:
- echo "hello"
- echo "world"|grep non-exist
- echo "world"
Main log file
loading [Config]: ./tests/functests/upconfig.yml
Main config:
Version -> 1.0.0
RefDir -> ./tests/functests
WorkDir -> cwd
AbsWorkDir -> /up_project/up
TaskFile -> c0068
Verbose -> vvv
ModuleName -> self
ShellType -> /bin/sh
MaxCallLayers -> 8
Timeout -> 3600000
MaxModuelCallLayers -> 256
EntryTask -> task
ModRepoUsernameRef ->
ModRepoPasswordRef ->
work dir: /up_project/up
-exec task: task
loading [Task]: ./tests/functests/c0068
module: [self], instance id: [dev], exec profile: []
profile - envVars:
(*core.Cache)({
})
Task1: [task ==> task: ]
-Step1: [: do step1 in shell func ]
self: final context exec vars:
(*core.Cache)({
"up_runtime_task_layer_number": 0
})
cmd( 1):
echo "hello"
-
hello
-
.. ok
cmd( 2):
echo "world"|grep non-exist
-
-
.. failed(suppressed if it is not the last step)
cmd( 3):
echo "world"
-
world
-
.. ok
. ok
Logs with different verbose level
Raw logs with different verbose level