From 2f81aceb09ebf0973bda391337a1c8c6c1921e38 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 20 Apr 2017 11:06:19 +0200 Subject: reproducible fdroid: create build job separate from setup Signed-off-by: Holger Levsen --- bin/reproducible_fdroid_build_all_profitbricks7.sh | 78 ++++++++++++++++++++++ bin/reproducible_setup_fdroid_build_environment.sh | 15 +---- 2 files changed, 79 insertions(+), 14 deletions(-) create mode 100644 bin/reproducible_fdroid_build_all_profitbricks7.sh (limited to 'bin') diff --git a/bin/reproducible_fdroid_build_all_profitbricks7.sh b/bin/reproducible_fdroid_build_all_profitbricks7.sh new file mode 100644 index 00000000..cbc25a77 --- /dev/null +++ b/bin/reproducible_fdroid_build_all_profitbricks7.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +# Copyright 2015-2016 Holger Levsen +# released under the GPLv=2 + +# +# + +DEBUG=true +. /srv/jenkins/bin/common-functions.sh +common_init "$@" + +# common code +. /srv/jenkins/bin/reproducible_common.sh + +# define and clean work space (differently than jenkins would normally do as we run via ssh on a different node…) +WORKSPACE=$BASE/fdroid-build +rm $WORKSPACE -rf +mkdir -p $WORKSPACE + +cleanup_all() { + echo "$(date -u) - cleanup in progress..." + killall VBoxHeadless || true + sleep 10 + echo "$(date -u) - cleanup done." +} +trap cleanup_all INT TERM EXIT + +# report info about virtualization +(dmesg | grep -i -e hypervisor -e qemu -e kvm) || true +(lspci | grep -i -e virtio -e virtualbox -e qemu -e kvm) || true +lsmod +if systemd-detect-virt -q ; then + echo "Virtualization is used:" `systemd-detect-virt` +else + echo "No virtualization is used." +fi +sudo /bin/chmod -R a+rX /var/lib/libvirt/images +ls -ld /var/lib/libvirt/images +ls -l /var/lib/libvirt/images || echo no access +ls -lR ~/.vagrant.d/ || echo no access +virsh --connect qemu:///system list --all || echo cannot virsh list +cat /etc/issue + +# point to the Vagrant/VirtualBox configs created by reproducible_setup_fdroid_build_environment.sh +# these variables are actually set in fdroidserver/jenkins-build-makebuildserver +SETUP_WORKSPACE=$BASE/fdroid +export XDG_CONFIG_HOME=$SETUP_WORKSPACE +export VBOX_USER_HOME=$WORKSPACE/VirtualBox +export VAGRANT_HOME=$WORKSPACE/vagrant.d + +# the way we handle jenkins slaves doesn't copy the workspace to the slaves +# so we need to "manually" clone the git repo here… +cd $WORKSPACE +#git clone https://gitlab.com/fdroid/fdroidserver.git +git clone https://gitlab.com/uniqx/fdroidserver.git +cd fdroidserver +git checkout jenkins.debian.net # normally master too + +# set up Android SDK to use the Debian packages in stretch +export ANDROID_HOME=/usr/lib/android-sdk + +# ignore username/password prompt for non-existant repos +git config --global url."https://fakeusername:fakepassword@github.com".insteadOf https://github.com +git config --global url."https://fakeusername:fakepassword@gitlab.com".insteadOf https://gitlab.com +git config --global url."https://fakeusername:fakepassword@bitbucket.org".insteadOf https://bitbucket.org + +# now build the whole archive +cd $WORKSPACE +git clone https://gitlab.com/fdroid/fdroiddata.git +cd fdroiddata +echo "build_server_always = True" > config.py +$WORKSPACE/fdroidserver/fdroid build --verbose --latest --all + + +# remove trap +trap - INT TERM EXIT +echo "$(date -u) - the end." diff --git a/bin/reproducible_setup_fdroid_build_environment.sh b/bin/reproducible_setup_fdroid_build_environment.sh index 584abdfa..c6c94c9b 100755 --- a/bin/reproducible_setup_fdroid_build_environment.sh +++ b/bin/reproducible_setup_fdroid_build_environment.sh @@ -15,7 +15,6 @@ common_init "$@" # define and clean work space (differently than jenkins would normally do as we run via ssh on a different node…) WORKSPACE=$BASE/fdroid -# FIXME: add locking here to only run this if no build job is running… not yet needed, as we don't have any build jobs yet rm $WORKSPACE -rf mkdir -p $WORKSPACE @@ -45,7 +44,7 @@ cat /etc/issue # delete old libvirt instances, until the fdroid tools do it reliably virsh --connect qemu:///system undefine builder_default || echo nothing to undefine -virsh --connect qemu:///system vol-delete /var/lib/libvirt/images/builder_default.img || echo nothing to delete +virsh --connect qemu:///system vol-delete --pool default /var/lib/libvirt/images/builder_default.img || echo nothing to delete # the way we handle jenkins slaves doesn't copy the workspace to the slaves # so we need to "manually" clone the git repo here… @@ -62,18 +61,6 @@ export ANDROID_HOME=/usr/lib/android-sdk # Project's jenkins box ./jenkins-build-makebuildserver -# ignore username/password prompt for non-existant repos -git config --global url."https://fakeusername:fakepassword@github.com".insteadOf https://github.com -git config --global url."https://fakeusername:fakepassword@gitlab.com".insteadOf https://gitlab.com -git config --global url."https://fakeusername:fakepassword@bitbucket.org".insteadOf https://bitbucket.org - -# now build the whole archive -cd $WORKSPACE -git clone https://gitlab.com/fdroid/fdroiddata.git -cd fdroiddata -echo "build_server_always = True" > config.py -$WORKSPACE/fdroidserver/fdroid build --verbose --latest --all - # remove trap trap - INT TERM EXIT echo "$(date -u) - the end." -- cgit v1.2.3-54-g00ecf