diff options
author | Holger Levsen <holger@layer-acht.org> | 2015-08-12 18:08:39 +0200 |
---|---|---|
committer | Holger Levsen <holger@layer-acht.org> | 2015-08-12 18:08:39 +0200 |
commit | cdd698ba3a513538a846e6488fe29942280018f1 (patch) | |
tree | 12a50797754e4b325b5326481b2724365d135e62 | |
parent | f38d3ed0605187324797fa80d9b9d7e6a2195885 (diff) | |
download | jenkins.debian.net-cdd698ba3a513538a846e6488fe29942280018f1.tar.xz |
reproducible freebsd: build a 2nd time, copy results over and run debbindiff on them
-rwxr-xr-x | bin/reproducible_freebsd.sh | 48 | ||||
-rw-r--r-- | hosts/freebsd-jenkins/usr/local/etc/sudoers | 1 |
2 files changed, 22 insertions, 27 deletions
diff --git a/bin/reproducible_freebsd.sh b/bin/reproducible_freebsd.sh index 54ff13d3..be736851 100755 --- a/bin/reproducible_freebsd.sh +++ b/bin/reproducible_freebsd.sh @@ -14,9 +14,8 @@ set -e cleanup_tmpdirs() { cd - echo "cleanup disabled, please check $TMPDIR and $TMPBUILDDIR and cleanup manually" - #$RSSH "rm -r $TMPDIR" - #$RSSH "rm -r $TMPBUILDDIR" + $RSSH "rm -r $TMPDIR" + $RSSH 'sudo rm -r /usr/src /usr/obj' } create_results_dirs() { @@ -26,7 +25,7 @@ create_results_dirs() { save_freebsd_results(){ local RUN=$1 mkdir -p $TMPDIR/$RUN/ - cp -pr obj/releasedir/ $TMPDIR/$RUN/ + cp -pr /usr/obj/releasedir/ $TMPDIR/$RUN/ find $TMPDIR/$RUN/ -name MD5 -o -name SHA512 -exec rm {} \; } @@ -35,6 +34,7 @@ save_freebsd_results(){ # FREEBSD_TARGET="release/10.1.0" RSSH="ssh freebsd-jenkins.debian.net" +RSCP="scp -r freebsd-jenkins.debian.net" TMPBUILDDIR=/usr/src $RSSH 'sudo rm -r /usr/src /usr/obj ; sudo mkdir /usr/src /usr/obj ; sudo chown jenkins /usr/src /usr/obj' ### this is tmpfs on linux, we should move this to tmpfs on freebsd too TMPDIR=$($RSSH 'TMPDIR=/srv/reproducible-results mktemp -d') # used to compare results @@ -62,39 +62,29 @@ echo "$(date -u) - Building freebsd ${FREEBSD_VERSION} - first build run." echo "=============================================================================" export TZ="/usr/share/zoneinfo/Etc/GMT+12" # actually build everything -$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make buildworld" || true -### try again, to work around failure in cleanup (stage 2.1) -###$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make buildworld" +$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make buildworld" # save results in b1 save_freebsd_results b1 -# cleanup ... - -echo "so far so good, to be continued..." -echo -exit 1 - echo "=============================================================================" echo "$(date -u) - Building freebsd ${FREEBSD_VERSION} - cleaning up between builds." echo "=============================================================================" -###rm obj/releasedir -r -###rm obj/destdir.* -r +sudo rm -r /usr/obj/releasedir /usr/obj/destdir.* # we keep the toolchain(s) echo "=============================================================================" echo "$(date -u) - Building freebsd - second build run." echo "=============================================================================" export TZ="/usr/share/zoneinfo/Etc/GMT-14" -export LANG="fr_CH.UTF-8" -export LC_ALL="fr_CH.UTF-8" -export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" -export CAPTURE_ENVIRONMENT="I capture the environment" -umask 0002 -# use allmost all cores for second build -NEW_NUM_CPU=$(echo $NUM_CPU-1|bc) -ionice -c 3 nice \ - linux64 --uname-2.6 \ - ./build.sh -j $NEW_NUM_CPU -U -u -m ${MACHINE} release +###export LANG="fr_CH.UTF-8" +###export LC_ALL="fr_CH.UTF-8" +###export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" +###export CAPTURE_ENVIRONMENT="I capture the environment" +###umask 0002 +#### use allmost all cores for second build +###NEW_NUM_CPU=$(echo $NUM_CPU-1|bc) +# actually build everything +$RSSH "cd $TMPBUILDDIR ; TZ=$TZ sudo make buildworld" # save results in b2 save_freebsd_results b2 # cleanup... @@ -106,8 +96,12 @@ export TZ="/usr/share/zoneinfo/UTC" export PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:" umask 0022 -# clean up builddir to save space on tmpfs -rm -r $TMPBUILDDIR/freebsd +# cleanup on the node +$RSSH 'sudo rm -r /usr/src /usr/obj' + +# copy results over +$RSCP:$TMPDIR $TMPDIR +$RSSH "rm -r $TMPDIR" # run debbindiff on the results TIMEOUT="30m" diff --git a/hosts/freebsd-jenkins/usr/local/etc/sudoers b/hosts/freebsd-jenkins/usr/local/etc/sudoers index 0be3749c..831f220a 100644 --- a/hosts/freebsd-jenkins/usr/local/etc/sudoers +++ b/hosts/freebsd-jenkins/usr/local/etc/sudoers @@ -94,6 +94,7 @@ root ALL=(ALL) ALL # for reproducible builds: jenkins ALL= NOPASSWD: /usr/bin/make buildworld, \ /bin/rm -r /usr/src /usr/obj, \ + /bin/rm -r /usr/obj/releasedir /usr/obj/destdir.*, \ /bin/mkdir /usr/src /usr/obj, \ /usr/sbin/chown jenkins /usr/src /usr/obj |