diff options
-rw-r--r-- | bin/reproducible_fdroid_build_all_profitbricks7.sh | 78 | ||||
-rwxr-xr-x | bin/reproducible_setup_fdroid_build_environment.sh | 15 | ||||
-rw-r--r-- | job-cfg/reproducible.yaml | 10 |
3 files changed, 87 insertions, 16 deletions
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 <holger@layer-acht.org> +# 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." diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml index 96850ae3..11c2bfca 100644 --- a/job-cfg/reproducible.yaml +++ b/job-cfg/reproducible.yaml @@ -859,10 +859,16 @@ otherproject_git: - 'setup_fdroid_build_environment_profitbricks7': my_description: 'Setup a build environment for F-Droid.' - my_timed: '42 23 * * *' + my_timed: '42 0 * * 1' my_hname: 'profitbricks7' my_gitrepo: 'https://gitlab.com/fdroid/fdroidserver.git' - my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org hans@guardianproject.info' + my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org hans@guardianproject.info michael.poehn@fsfe.org' + - 'fdroid_build_all_profitbricks7': + my_description: 'Build all the latest apps for F-Droid.' + my_timed: '42 7 * * *' + my_hname: 'profitbricks7' + my_gitrepo: 'https://gitlab.com/fdroid/fdroidserver.git' + my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org hans@guardianproject.info michael.poehn@fsfe.org' - 'diffoscope_from_git_master': my_description: 'Build diffoscope Debian package from git branch master.' my_timed: '42 23 1 1 *' |