1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-20 13:50:12 +01:00
fdroidserver/jenkins-build-makebuildserver
Hans-Christoph Steiner 580a9eb058 buildserver: support HTTPS Debian mirrors
The ever troublesome gpjenkins box needs to use HTTPS mirrors.  Plus it
improves the security of the buildserver, since there have been CVEs that
HTTPS would protect against:
https://www.debian.org/security/2016/dsa-3733
2017-03-16 15:06:35 +01:00

103 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
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
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
./makebuildserver --verbose --clean
# this can be handled in the jenkins job, or here:
if [ -e fdroiddata ]; then
cd fdroiddata
git remote update -p
git checkout master
git reset --hard origin/master
cd ..
else
git clone --depth 1 https://gitlab.com/fdroid/fdroiddata.git fdroiddata
fi
cd fdroiddata
if [ -z $ANDROID_HOME ]; then
if [ -e ~/.android/bashrc ]; then
. ~/.android/bashrc
else
echo "ANDROID_HOME must be set!"
exit
fi
fi
../fdroid init --verbose
export GNUPGHOME=$WORKSPACE/tests/gnupghome
echo "gpghome = '$GNUPGHOME'" >> config.py
echo "gpgkey = 'CE71F7FB'" >> config.py
echo "build_server_always = True" >> config.py
# 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
# Uses verification
../fdroid build --verbose --stop info.guardianproject.checkey:101
# 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 --latest org.fdroid.fdroid.privileged.ota
# publish process when building and signing are on separate machines
test -d repo || mkdir repo
test -d archive || mkdir archive
../fdroid publish --verbose
../fdroid gpgsign --verbose
../fdroid update --verbose --nosign
../fdroid signindex --verbose
../fdroid rewritemeta --verbose
git --no-pager diff