# This script parses the console log to discover which project has caused a
# build failure and notify the project as appropriate.
+echo "---> notify-build-failure.sh"
+
NEWLINE=$'\n'
RELEASE_EMAIL="release@lists.opendaylight.org"
ARCHIVES_DIR="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER"
--else -o ""\
"$p" 2>/dev/null)
if [ ! -z "${GROUP}" ]; then
+ # shellcheck disable=SC2207
grouplist+=($(echo "${GROUP}" | awk -F'.' '{ print $3 }'))
fi
done < <(find . -name "pom.xml")
elif [ "${#grouplist[@]}" -gt 1 ]; then
GROUPLIST="NOTE: The artifactId: $ARTIFACT_ID matches multiple groups: ${grouplist[*]}"
else
- echo "Failed to determine project.groupId using xpaths"
+ echo "Unable to determine project.groupId using xpaths"
fi
else
- echo "Failed to determine ARTIFACT_ID"
- exit 1
+ echo "Unable to determine failed ARTIFACT_ID. Build likely successful or bug in this script."
+ exit 0
fi
# Construct email subject & body
$CONSOLE_LOG | gzip > "$ERROR_LOG"
if [ -n "${PROJECT}" ]; then
- RELEASE_EMAIL="\${RELEASE_EMAIL}, \${PROJECT}-dev@lists.opendaylight.org"
+ RELEASE_EMAIL="${RELEASE_EMAIL}, ${PROJECT}-dev@lists.opendaylight.org"
fi
file_size=$(du -k "$ERROR_LOG" | cut -f1)
- PARAMS=("-r \"Jenkins <jenkins-dontreply@opendaylight.org>\"")
- PARAMS+=("-s \"$SUBJECT\"")
# Only send emails in production (releng), not testing (sandbox)
if [ "${SILO}" == "releng" ]; then
if [[ "$file_size" -gt 100 ]]; then
# shellcheck disable=SC2034
ATTACHMENT=ATTACHMENT_EXCLUDE
+ eval echo \""${BODY}"\" | mail \
+ -r "Jenkins <jenkins-dontreply@opendaylight.org>" \
+ -s "${SUBJECT}" "${RELEASE_EMAIL}"
else
- PARAMS+=("-a \"$ERROR_LOG\"")
+ eval echo \""${BODY}"\" | mail -a "$ERROR_LOG" \
+ -r "Jenkins <jenkins-dontreply@opendaylight.org>" \
+ -s "${SUBJECT}" "${RELEASE_EMAIL}"
fi
-
- eval echo \""${BODY}"\" | eval mail "${PARAMS[*]}" "${RELEASE_EMAIL}"
-
elif [ "${SILO}" == "sandbox" ]; then
echo "Running in sandbox, not actually sending notification emails"
echo "Subject: ${SUBJECT}"