mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-04 22:40:12 +01:00
2cf6110860
Oops, this has been failing, since it was running the build on the vm host, not in the buildserver VM.
101 lines
3.0 KiB
Bash
Executable File
101 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# runs here:
|
|
# https://jenkins.debian.net/job/reproducible_setup_fdroid_build_environment
|
|
|
|
if [ `dirname $0` != "." ]; then
|
|
echo "only run this script like ./`basename $0`"
|
|
exit
|
|
fi
|
|
|
|
if [ -z $WORKSPACE ]; then
|
|
WORKSPACE=`pwd`
|
|
fi
|
|
|
|
# make sure that no VirtualBox processes are left running
|
|
cleanup_all() {
|
|
set +e
|
|
echo "$(date -u) - cleanup in progress..."
|
|
ps auxww | grep -e VBox -e qemu
|
|
virsh --connect qemu:///system list --all
|
|
ls -hl /var/lib/libvirt/images
|
|
cd $WORKSPACE/buildserver
|
|
vagrant halt
|
|
sleep 5
|
|
killall VBoxHeadless
|
|
sleep 5
|
|
killall -9 VBoxHeadless
|
|
echo "$(date -u) - cleanup done."
|
|
}
|
|
trap cleanup_all INT TERM EXIT
|
|
|
|
set -e
|
|
set -x
|
|
|
|
# make sure we have the vagrant box image cached
|
|
test -e ~/.cache/fdroidserver || mkdir -p ~/.cache/fdroidserver
|
|
cd ~/.cache/fdroidserver
|
|
wget --tries=1 --timeout=5 --continue https://f-droid.org/jessie64.box || true
|
|
echo "de3e3c4a9c13e8c015e30edeea0f583b195d1ee8ff9ad4814e933bbfb560200f jessie64.box" > jessie64.box.sha256
|
|
sha256sum -c jessie64.box.sha256
|
|
|
|
# redirect homes to be in the git repo, so they'll get cleaned and reset
|
|
export XDG_CONFIG_HOME=$WORKSPACE
|
|
export VBOX_USER_HOME=$WORKSPACE/VirtualBox
|
|
mkdir $VBOX_USER_HOME
|
|
if which VBoxManage; then
|
|
VBoxManage setproperty machinefolder $WORKSPACE/virtualbox.d
|
|
VBoxManage setproperty logginglevel debug
|
|
fi
|
|
export VAGRANT_HOME=$WORKSPACE/vagrant.d
|
|
mkdir $VAGRANT_HOME
|
|
|
|
cd $WORKSPACE
|
|
echo "debian_mirror = 'https://deb.debian.org/debian/'" > $WORKSPACE/makebuildserver.config.py
|
|
echo "boot_timeout = 1200" >> $WORKSPACE/makebuildserver.config.py
|
|
echo "apt_package_cache = True" >> $WORKSPACE/makebuildserver.config.py
|
|
echo "copy_caches_from_host = True" >> $WORKSPACE/makebuildserver.config.py
|
|
echo "memory = 6144" >> $WORKSPACE/makebuildserver.config.py
|
|
echo "cpus = 2" >> $WORKSPACE/makebuildserver.config.py
|
|
./makebuildserver -vv --clean
|
|
|
|
if [ -z "`vagrant box list | egrep '^buildserver\s+\((libvirt|virtualbox), [0-9]+\)$'`" ]; then
|
|
vagrant box list
|
|
echo "ERROR: buildserver box does not exist!"
|
|
exit 1
|
|
fi
|
|
|
|
# this can be handled in the jenkins job, or here:
|
|
if [ -e fdroiddata ]; then
|
|
cd fdroiddata
|
|
while ! git fetch; do sleep 1; done
|
|
git remote update -p
|
|
git checkout master
|
|
git reset --hard origin/master
|
|
git clean -fdx
|
|
cd ..
|
|
else
|
|
git clone --depth 1 https://gitlab.com/fdroid/fdroiddata.git fdroiddata
|
|
fi
|
|
|
|
cd fdroiddata
|
|
echo "build_server_always = True" > config.py
|
|
|
|
if [ -z $ANDROID_HOME ]; then
|
|
if [ -e ~/.android/bashrc ]; then
|
|
. ~/.android/bashrc
|
|
else
|
|
echo "ANDROID_HOME must be set!"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# if it can't build fdroid, then its really broken
|
|
../fdroid build --verbose --stop --latest org.fdroid.fdroid
|
|
# Gradle, JNI, preassemble
|
|
../fdroid build --verbose --stop org.adaway:55
|
|
# building old versions should still work
|
|
../fdroid build --verbose --stop org.fdroid.fdroid:96150
|
|
# test OTA update ZIP build and publish
|
|
../fdroid build --verbose --stop org.fdroid.fdroid.privileged.ota:2070
|