Return error if execution of the step fails

When Shipyard fails to execute some of the steps, the status
of the action is always "Complete", determine the success
of the execution based not only on action status, but
also on the status of every step within the action.

Change-Id: If7f71b55c2aed0322edef9c811ed1906400b0913
This commit is contained in:
Evgeny L 2019-04-16 21:32:46 +00:00
parent b36bf8abb7
commit 4a065c3270
1 changed files with 13 additions and 4 deletions

View File

@ -105,8 +105,9 @@ run_action () {
while true;
do
# Get Current State of Action Lifecycle
describe_action=`${base_docker_command} ${SHIPYARD_IMAGE} describe ${action_id}`
action_lifecycle=`echo ${describe_action} | awk '{print $8}'`
describe_action=$(${base_docker_command} ${SHIPYARD_IMAGE} describe "${action_id}")
action_lifecycle=$(echo "${describe_action}" | grep -i "Lifecycle" | awk '{print $2}')
action_steps=$(echo "${describe_action}" | grep -i "step/" | awk '{print $3}')
if [[ $action_lifecycle == "Complete" ]]; then
echo -e '\nSuccessfully performed' ${action}
@ -135,10 +136,18 @@ run_action () {
# Return exit code so that we can use it to determine the final
# state of the workflow
if [[ $action_lifecycle == "Complete" ]]; then
# Return the error if any of the steps failed to execute.
for step in ${action_steps}; do
if [ "${step}" == "failed" ]; then
exit 1
fi
done
# None of the steps failed to execute, success.
exit 0
else
exit 1
fi
exit 1
}
# Calls 'run_action' function