Since we immediately fail on any shell errors we miss log
collection at the end of the build. Fix detox part of script to
allow the log collection code to run.
Change-Id: I50bcd337224adcecbf028f08b56cfebe2e10a3d4
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
export PATH="$PYENV_ROOT/bin:$PATH"
fi
export PATH="$PYENV_ROOT/bin:$PATH"
fi
+set +e # Allow detox to fail so that we can collect the logs in the next step
if [ ! -z "$TOX_ENVS" ]; then
detox -e "$TOX_ENVS" | tee -a "$ARCHIVE_TOX_DIR/detox.log"
if [ ! -z "$TOX_ENVS" ]; then
detox -e "$TOX_ENVS" | tee -a "$ARCHIVE_TOX_DIR/detox.log"
+ detox_status="${PIPESTATUS[0]}"
else
detox | tee -a "$ARCHIVE_TOX_DIR/detox.log"
else
detox | tee -a "$ARCHIVE_TOX_DIR/detox.log"
+ detox_status="${PIPESTATUS[0]}"
fi
# Disable SC2116 as we want to echo a space separated list of TOX_ENVS
# shellcheck disable=SC2116
fi
# Disable SC2116 as we want to echo a space separated list of TOX_ENVS
# shellcheck disable=SC2116
-for i in $(echo "${TOX_ENVS//,/ }"); do
- cp -r ".tox/$i/log" "$ARCHIVE_TOX_DIR/$i"
+for i in .tox/*/log; do
+ tox_env=$(echo $i | awk -F'/' '{print $2}')
+ cp -r "$i" "$ARCHIVE_TOX_DIR/$tox_env"
+set -e # Logs collected so re-enable
echo "Completed tox runs."
echo "Completed tox runs."
+
+test "$detox_status" -eq 0 || exit "$detox_status"
</command>
</hudson.tasks.Shell>
</builders>
</command>
</hudson.tasks.Shell>
</builders>
export PATH="$PYENV_ROOT/bin:$PATH"
fi
export PATH="$PYENV_ROOT/bin:$PATH"
fi
+set +e # Allow detox to fail so that we can collect the logs in the next step
if [ ! -z "$TOX_ENVS" ]; then
detox -e "$TOX_ENVS" | tee -a "$ARCHIVE_TOX_DIR/detox.log"
if [ ! -z "$TOX_ENVS" ]; then
detox -e "$TOX_ENVS" | tee -a "$ARCHIVE_TOX_DIR/detox.log"
+ detox_status="${PIPESTATUS[0]}"
else
detox | tee -a "$ARCHIVE_TOX_DIR/detox.log"
else
detox | tee -a "$ARCHIVE_TOX_DIR/detox.log"
+ detox_status="${PIPESTATUS[0]}"
fi
# Disable SC2116 as we want to echo a space separated list of TOX_ENVS
# shellcheck disable=SC2116
fi
# Disable SC2116 as we want to echo a space separated list of TOX_ENVS
# shellcheck disable=SC2116
-for i in $(echo "${TOX_ENVS//,/ }"); do
- cp -r ".tox/$i/log" "$ARCHIVE_TOX_DIR/$i"
+for i in .tox/*/log; do
+ tox_env=$(echo $i | awk -F'/' '{print $2}')
+ cp -r "$i" "$ARCHIVE_TOX_DIR/$tox_env"
+set -e # Logs collected so re-enable
echo "Completed tox runs."
echo "Completed tox runs."
+
+test "$detox_status" -eq 0 || exit "$detox_status"
</command>
</hudson.tasks.Shell>
</builders>
</command>
</hudson.tasks.Shell>
</builders>
export PATH="$PYENV_ROOT/bin:$PATH"
fi
export PATH="$PYENV_ROOT/bin:$PATH"
fi
+set +e # Allow detox to fail so that we can collect the logs in the next step
if [ ! -z "$TOX_ENVS" ]; then
detox -e "$TOX_ENVS" | tee -a "$ARCHIVE_TOX_DIR/detox.log"
if [ ! -z "$TOX_ENVS" ]; then
detox -e "$TOX_ENVS" | tee -a "$ARCHIVE_TOX_DIR/detox.log"
+ detox_status="${PIPESTATUS[0]}"
else
detox | tee -a "$ARCHIVE_TOX_DIR/detox.log"
else
detox | tee -a "$ARCHIVE_TOX_DIR/detox.log"
+ detox_status="${PIPESTATUS[0]}"
fi
# Disable SC2116 as we want to echo a space separated list of TOX_ENVS
# shellcheck disable=SC2116
fi
# Disable SC2116 as we want to echo a space separated list of TOX_ENVS
# shellcheck disable=SC2116
-for i in $(echo "${TOX_ENVS//,/ }"); do
- cp -r ".tox/$i/log" "$ARCHIVE_TOX_DIR/$i"
+for i in .tox/*/log; do
+ tox_env=$(echo $i | awk -F'/' '{print $2}')
+ cp -r "$i" "$ARCHIVE_TOX_DIR/$tox_env"
+set -e # Logs collected so re-enable
echo "Completed tox runs."
echo "Completed tox runs."
+
+test "$detox_status" -eq 0 || exit "$detox_status"