[Qa-jenkins-scm] [jenkins.debian.net] 02/02: reproducible freebsd: refactor, also provide results if one build fails
Holger Levsen
holger at moszumanska.debian.org
Sat Nov 21 11:47:29 UTC 2015
This is an automated email from the git hooks/post-receive script.
holger pushed a commit to branch master
in repository jenkins.debian.net.
commit ab600503f6d0763d1e92354741e838f74ed45925
Author: Holger Levsen <holger at layer-acht.org>
Date: Sat Nov 21 11:47:10 2015 +0000
reproducible freebsd: refactor, also provide results if one build fails
---
bin/reproducible_freebsd.sh | 75 ++++++++++++++++++++++++++-------------------
1 file changed, 43 insertions(+), 32 deletions(-)
diff --git a/bin/reproducible_freebsd.sh b/bin/reproducible_freebsd.sh
index 2cdc073..2d96ccf 100755
--- a/bin/reproducible_freebsd.sh
+++ b/bin/reproducible_freebsd.sh
@@ -37,6 +37,47 @@ save_freebsd_results(){
$RSSH "sudo chflags -R noschg $TMPDIR ; sudo rm -r $TMPDIR $TMPDIR.tar.xz ; mkdir $TMPDIR"
}
+run_diffoscope_on_results() {
+ TIMEOUT="30m"
+ DIFFOSCOPE="$(schroot --directory /tmp -c source:jenkins-reproducible-${DBDSUITE}-diffoscope diffoscope -- --version 2>&1)"
+ echo "============================================================================="
+ echo "$(date -u) - Running $DIFFOSCOPE on FreeBSD (branch $FREEBSD_TARGET at ${FREEBSD_VERSION}) build results."
+ echo "============================================================================="
+ FILES_HTML[$FREEBSD_TARGET]=$(mktemp --tmpdir=$TMPDIR)
+ #echo " <ul>" > ${FILES_HTML[$FREEBSD_TARGET]}
+ GOOD_FILES[$FREEBSD_TARGET]=0
+ ALL_FILES[$FREEBSD_TARGET]=0
+ SIZE=""
+ create_results_dirs
+ echo " <table><tr><th>Artifacts for <code>$TARGET_NAME</code></th></tr>" >> ${FILES_HTML[$FREEBSD_TARGET]}
+ if [ ! -d $TMPDIR/b1 ] || [ ! -d $TMPDIR/b1 ] ; then
+ echo "Warning, one of the two builds failed, not running diffoscope…"
+ echo "<tr><td>$TARGET_NAME failed to build from source.</td></tr>" >> ${FILES_HTML[$FREEBSD_TARGET]}
+ echo "</table>" >> ${FILES_HTML[$FREEBSD_TARGET]}
+ GOOD_PERCENT[$FREEBSD_TARGET]="0"
+ return # FIXME: further refatcoring
+ fi
+ cd $TMPDIR/b1
+ tree .
+ for j in $(find * -type f |sort -u ) ; do
+ ALL_FILES[$FREEBSD_TARGET]=$(( ${ALL_FILES[$FREEBSD_TARGET]}+1 ))
+ call_diffoscope . $j
+ get_filesize $j
+ if [ -f $TMPDIR/$j.html ] ; then
+ mkdir -p $BASE/freebsd/dbd/$(dirname $j)
+ mv $TMPDIR/$j.html $BASE/freebsd/dbd/$j.html
+ echo " <tr><td><a href=\"dbd/$j.html\"><img src=\"/userContent/static/weather-showers-scattered.png\" alt=\"unreproducible icon\" /> $j</a> ($SIZE) is unreproducible.</td></tr>" >> ${FILES_HTML[$FREEBSD_TARGET]}
+ else
+ SHASUM=$(sha256sum $j|cut -d " " -f1)
+ echo " <tr><td><img src=\"/userContent/static/weather-clear.png\" alt=\"reproducible icon\" /> $j ($SHASUM, $SIZE) is reproducible.</td></tr>" >> ${FILES_HTML[$FREEBSD_TARGET]}
+ GOOD_FILES[$FREEBSD_TARGET]=$(( ${GOOD_FILES[$FREEBSD_TARGET]}+1 ))
+ rm -f $BASE/freebsd/dbd/$j.html # cleanup from previous (unreproducible) tests - if needed
+ fi
+ done
+ echo " </table>" >> ${FILES_HTML[$FREEBSD_TARGET]}
+ GOOD_PERCENT[$FREEBSD_TARGET]=$(echo "scale=1 ; (${GOOD_FILES[$FREEBSD_TARGET]}*100/${ALL_FILES[$FREEBSD_TARGET]})" | bc)
+}
+
#
# main
#
@@ -90,6 +131,7 @@ for FREEBSD_TARGET in ${FREEBSD_TARGETS} ;do
else
cleanup_tmpdirs
echo "$(date -u ) - failed to build FreeBSD (branch $FREEBSD_TARGET at ${FREEBSD_VERSION}) in the first run, stopping."
+ run_diffoscope_on_results
continue
fi
@@ -130,39 +172,8 @@ for FREEBSD_TARGET in ${FREEBSD_TARGETS} ;do
export TZ="/usr/share/zoneinfo/UTC"
export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:"
umask 0022
+ run_diffoscope_on_results
- # run diffoscope on the results
- TIMEOUT="30m"
- DIFFOSCOPE="$(schroot --directory /tmp -c source:jenkins-reproducible-${DBDSUITE}-diffoscope diffoscope -- --version 2>&1)"
- echo "============================================================================="
- echo "$(date -u) - Running $DIFFOSCOPE on FreeBSD (branch $FREEBSD_TARGET at ${FREEBSD_VERSION}) build results."
- echo "============================================================================="
- FILES_HTML[$FREEBSD_TARGET]=$(mktemp --tmpdir=$TMPDIR)
- echo " <ul>" > ${FILES_HTML[$FREEBSD_TARGET]}
- GOOD_FILES[$FREEBSD_TARGET]=0
- ALL_FILES[$FREEBSD_TARGET]=0
- SIZE=""
- create_results_dirs
- cd $TMPDIR/b1
- tree .
- echo " <table><tr><th>Artifacts for <code>$TARGET_NAME</code></th></tr>" >> ${FILES_HTML[$FREEBSD_TARGET]}
- for j in $(find * -type f |sort -u ) ; do
- ALL_FILES[$FREEBSD_TARGET]=$(( ${ALL_FILES[$FREEBSD_TARGET]}+1 ))
- call_diffoscope . $j
- get_filesize $j
- if [ -f $TMPDIR/$j.html ] ; then
- mkdir -p $BASE/freebsd/dbd/$(dirname $j)
- mv $TMPDIR/$j.html $BASE/freebsd/dbd/$j.html
- echo " <tr><td><a href=\"dbd/$j.html\"><img src=\"/userContent/static/weather-showers-scattered.png\" alt=\"unreproducible icon\" /> $j</a> ($SIZE) is unreproducible.</td></tr>" >> ${FILES_HTML[$FREEBSD_TARGET]}
- else
- SHASUM=$(sha256sum $j|cut -d " " -f1)
- echo " <tr><td><img src=\"/userContent/static/weather-clear.png\" alt=\"reproducible icon\" /> $j ($SHASUM, $SIZE) is reproducible.</td></tr>" >> ${FILES_HTML[$FREEBSD_TARGET]}
- GOOD_FILES[$FREEBSD_TARGET]=$(( ${GOOD_FILES[$FREEBSD_TARGET]}+1 ))
- rm -f $BASE/freebsd/dbd/$j.html # cleanup from previous (unreproducible) tests - if needed
- fi
- done
- echo " </table>" >> ${FILES_HTML[$FREEBSD_TARGET]}
- GOOD_PERCENT[$FREEBSD_TARGET]=$(echo "scale=1 ; (${GOOD_FILES[$FREEBSD_TARGET]}*100/${ALL_FILES[$FREEBSD_TARGET]})" | bc)
done
#
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/qa/jenkins.debian.net.git
More information about the Qa-jenkins-scm
mailing list