summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2015-10-16 22:40:06 +0200
committerHolger Levsen <holger@layer-acht.org>2015-10-16 22:40:09 +0200
commit818a99e1c042735e5bb885ce71e8dd14c38a565e (patch)
tree1caa695c9d4c21ea539b1bb668b4124c7b360e70
parentaf4e50cee54755c39f3175f8895471b9955ce40c (diff)
downloadjenkins.debian.net-818a99e1c042735e5bb885ce71e8dd14c38a565e.tar.xz
reproducible arch: publish build logs and only do 2nd build if the 1st was successfull
-rwxr-xr-xbin/reproducible_build_arch_pkg.sh18
1 files changed, 13 insertions, 5 deletions
diff --git a/bin/reproducible_build_arch_pkg.sh b/bin/reproducible_build_arch_pkg.sh
index 5cd87357..e15b8307 100755
--- a/bin/reproducible_build_arch_pkg.sh
+++ b/bin/reproducible_build_arch_pkg.sh
@@ -47,11 +47,12 @@ first_build() {
set -x
local SESSION="arch-$SRCPACKAGE-$(basename $TMPDIR)"
local BUILDDIR="/tmp/$SRCPACKAGE-$(basename $TMPDIR)"
+ local LOG=$TMPDIR/b1/$SRCPACKAGE/build1.log
schroot --begin-session --session-name=$SESSION -c jenkins-reproducible-arch
echo "MAKEFLAGS=-j$NUM_CPU" | schroot --run-session -c $SESSION --directory /tmp -u root -- tee -a /etc/makepkg.conf
schroot --run-session -c $SESSION --directory /tmp -- mkdir $BUILDDIR
schroot --run-session -c $SESSION --directory /tmp -- cp -r /var/abs/core/$SRCPACKAGE $BUILDDIR/
- schroot --run-session -c $SESSION --directory $BUILDDIR/$SRCPACKAGE -- makepkg --skippgpcheck
+ schroot --run-session -c $SESSION --directory $BUILDDIR/$SRCPACKAGE -- makepkg --skippgpcheck 2>&1 | tee -a $LOG
schroot --end-session -c $SESSION
if ! "$DEBUG" ; then set +x ; fi
}
@@ -65,12 +66,13 @@ second_build() {
set -x
local SESSION="arch-$SRCPACKAGE-$(basename $TMPDIR)"
local BUILDDIR="/tmp/$SRCPACKAGE-$(basename $TMPDIR)"
+ local LOG=$TMPDIR/b2/$SRCPACKAGE/build2.log
NEW_NUM_CPU=$(echo $NUM_CPU-1|bc)
schroot --begin-session --session-name=$SESSION -c jenkins-reproducible-arch
echo "MAKEFLAGS=-j$NEW_NUM_CPU" | schroot --run-session -c $SESSION --directory /tmp -u root -- tee -a /etc/makepkg.conf
schroot --run-session -c $SESSION --directory /tmp -- mkdir $BUILDDIR
schroot --run-session -c $SESSION --directory /tmp -- cp -r /var/abs/core/$SRCPACKAGE $BUILDDIR/
- schroot --run-session -c $SESSION --directory $BUILDDIR/$SRCPACKAGE -- makepkg --skippgpcheck
+ schroot --run-session -c $SESSION --directory $BUILDDIR/$SRCPACKAGE -- makepkg --skippgpcheck 2>&1 | tee -a $LOG
schroot --end-session -c $SESSION
if ! "$DEBUG" ; then set +x ; fi
}
@@ -114,7 +116,10 @@ remote_build() {
build_rebuild() {
mkdir b1 b2
remote_build 1
- remote_build 2
+ # only do the 2nd build if the 1st produced some results
+ if [ ! -z "$(ls $TMPDIR/b1/$SRCPACKAGE/*.pkg.tar.xz)" ] ; then
+ remote_build 2
+ fi
}
#
@@ -127,7 +132,6 @@ cd $TMPDIR
DATE=$(date -u +'%Y-%m-%d %H:%M')
START=$(date +'%s')
-RBUILDLOG=$(mktemp --tmpdir=$TMPDIR)
BUILDER="${JOB_NAME#reproducible_builder_}/${BUILD_ID}"
#
@@ -183,12 +187,16 @@ build_rebuild
TIMEOUT="30m"
DIFFOSCOPE="$(schroot --directory /tmp -c source:jenkins-reproducible-${DBDSUITE}-diffoscope diffoscope -- --version 2>&1)"
echo "$(date -u) - Running $DIFFOSCOPE now..."
+mkdir -p $BASE/archlinux/$SRCPACKAGE/
+cd $TMPDIR/b1/$SRCPACKAGE
+cp build1.log $BASE/archlinux/$SRCPACKAGE/
+cd $TMPDIR/b1/$SRCPACKAGE
+[ ! -f build2.log ] || cp build2.log $BASE/archlinux/$SRCPACKAGE/
cd $TMPDIR/b1/$SRCPACKAGE
for ARTIFACT in *.pkg.tar.xz ; do
call_diffoscope $SRCPACKAGE $ARTIFACT
# publish page
if [ -f $TMPDIR/$SRCPACKAGE/$ARTIFACT.html ] ; then
- mkdir -p $BASE/archlinux/$SRCPACKAGE/
cp $TMPDIR/$SRCPACKAGE/$ARTIFACT.html $BASE/archlinux/$SRCPACKAGE/
echo "$(date -u) - $REPRODUCIBLE_URL/archlinux/$SRCPACKAGE/$ARTIFACT.html updated."
fi