85 lines
2.8 KiB
Bash
Executable File
85 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ "${MATTER_PORTAGE_REPOSITORY}" = "gentoo" ]; then
|
|
BUGZILLA_URL="https://bugs.gentoo.org"
|
|
BUGZILLA_USER="lxnay@gentoo.org"
|
|
BUGZILLA_PASSWORD=""
|
|
#BUGZILLA_KEYWORDS="TINDERBOX"
|
|
BUGZILLA_PRODUCT="Gentoo Linux"
|
|
BUGZILLA_COMPONENT="Ebuilds"
|
|
BUGZILLA_PRIORITY="Low"
|
|
BUGZILLA_SEVERITY="QA"
|
|
elif [ "${MATTER_PORTAGE_REPOSITORY}" = "sabayon" ]; then
|
|
BUGZILLA_URL="https://bugs.sabayon.org"
|
|
BUGZILLA_USER="lxnay@sabayon.org"
|
|
BUGZILLA_PASSWORD=""
|
|
BUGZILLA_KEYWORDS="TINDERBOX"
|
|
BUGZILLA_PRODUCT="Entropy"
|
|
BUGZILLA_COMPONENT="Package"
|
|
BUGZILLA_PRIORITY="Low"
|
|
BUGZILLA_SEVERITY="normal"
|
|
else
|
|
# don't file a bug then
|
|
exit 0
|
|
fi
|
|
|
|
if [ ! -x "/usr/bin/bugz" ]; then
|
|
echo "ouch, pybugz not installed"
|
|
exit 1
|
|
fi
|
|
|
|
BUG_TEXT="Hello,
|
|
this is an automated report. So, please forgive me.
|
|
Package in subject has shown build failures on Sabayon Tinderbox.
|
|
Please find emerge --info =${MATTER_PORTAGE_FAILED_PACKAGE_NAME} below.
|
|
And hopefully the build log attached"
|
|
|
|
BUILD_LOG=$(echo -n "${MATTER_PORTAGE_BUILD_LOG_DIR}/${MATTER_PORTAGE_FAILED_PACKAGE_NAME}"*.log)
|
|
if [ -z "${BUILD_LOG}" ]; then
|
|
echo "cannot find build log, wtf??"
|
|
exit 1
|
|
fi
|
|
if [ ! -f "${BUILD_LOG}" ]; then
|
|
echo "cannot find build log file"
|
|
exit 1
|
|
fi
|
|
|
|
TINDERBOX_ID="$(date +%s)-${RANDOM}"
|
|
echo "Submitting bug with tinderbox_id: ${TINDERBOX_ID}"
|
|
|
|
/usr/bin/bugz -u "${BUGZILLA_USER}" -p "${BUGZILLA_PASSWORD}" --forget -b "${BUGZILLA_URL}" post \
|
|
-t "${MATTER_PORTAGE_FAILED_PACKAGE_NAME} build failure [tinderbox_id:${TINDERBOX_ID}]" -d "${BUG_TEXT}" \
|
|
--product "${BUGZILLA_PRODUCT}" --component "${BUGZILLA_COMPONENT}" \
|
|
--append-command "emerge --info =${MATTER_PORTAGE_FAILED_PACKAGE_NAME}" \
|
|
--priority "${BUGZILLA_PRIORITY}" --severity "${BUGZILLA_SEVERITY}" \
|
|
--keywords ${BUGZILLA_KEYWORDS} --batch --default-confirm Y
|
|
if [ "${?}" != "0" ]; then
|
|
echo "ouch, cannot report bug"
|
|
exit 1
|
|
fi
|
|
|
|
# workaround the fact that pybugz doesn't return the newly created bug id in a reliable way
|
|
# use tinderbox_id
|
|
tmp_file=$(mktemp)
|
|
/usr/bin/bugz -q -u "${BUGZILLA_USER}" -p "${BUGZILLA_PASSWORD}" --forget -b "${BUGZILLA_URL}" search "tinderbox_id:${TINDERBOX_ID}" | \
|
|
cut -d" " -f 1 | sed -r "s/\x1b\[\?1034h//" > "${tmp_file}"
|
|
if [ "${?}" != "0" ]; then
|
|
echo "cannot execute search and retrieve submitted bug id"
|
|
rm "${tmp_file}"
|
|
exit 1
|
|
fi
|
|
submitted_bug_id=$(cat "${tmp_file}" | cut -d" " -f 1)
|
|
rm "${tmp_file}"
|
|
echo "Realized bug id: ${submitted_bug_id}"
|
|
if [ -z "${submitted_bug_id}" ]; then
|
|
echo "cannot find submitted bug id, cannot attach build log"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Submitted bug to ${BUGZILLA_URL}, bug id: ${submitted_bug_id}"
|
|
|
|
# now attach the build log
|
|
/usr/bin/bugz -u "${BUGZILLA_USER}" -p "${BUGZILLA_PASSWORD}" --forget -b "${BUGZILLA_URL}" \
|
|
attach "${submitted_bug_id}" "${BUILD_LOG}" -d "build log"
|
|
exit ${?}
|