chiark / gitweb /
remove gradle-wrapper.jar during scan
[fdroidserver.git] / jenkins-build
index 7e54312d510ee30c6d0701e8568393346608ba9b..6ddc3edc36ad3a2255075df8aa279c219e523db0 100755 (executable)
@@ -9,94 +9,78 @@ if [ `dirname $0` != "." ]; then
     exit
 fi
 
-set -e
-set -x
-
+# jenkins.debian.net slaves do not export WORKSPACE
 if [ -z $WORKSPACE ]; then
     export WORKSPACE=`pwd`
 fi
 
-if [ -z $ANDROID_HOME ]; then
-    if [ -e ~/.android/bashrc ]; then
-        . ~/.android/bashrc
-    else
-        echo "ANDROID_HOME must be set!"
-        exit
-    fi
-fi
-
-
-#------------------------------------------------------------------------------#
-# cache pypi downloads
-if [ -z $PIP_DOWNLOAD_CACHE ]; then
-    export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache
-fi
-
-
-#------------------------------------------------------------------------------#
-# required Java 7 keytool/jarsigner for :file support
-
-export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
-
-
-#------------------------------------------------------------------------------#
-# run local tests, don't scan fdroidserver/ project for APKs
+set -e
+set -x
 
 # this is a local repo on the Guardian Project Jenkins server
-apksource=/var/www/fdroid
-
-cd $WORKSPACE/tests
-./run-tests $apksource
-
-
-#------------------------------------------------------------------------------#
-# test building the source tarball, then installing it
+cd tests
+#./complete-ci-tests /var/www/fdroid
+
+
+# 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
+
+/sbin/ifconfig || true
+hostname || true
+
+# point to the Vagrant/VirtualBox configs created by reproducible_setup_fdroid_build_environment.sh
+# these variables are actually set in fdroidserver/jenkins-build-makebuildserver
+export SETUP_WORKSPACE=$(dirname $WORKSPACE)/reproducible_setup_fdroid_build_environment/fdroidserver
+export XDG_CONFIG_HOME=$SETUP_WORKSPACE
+export VBOX_USER_HOME=$SETUP_WORKSPACE/VirtualBox
+export VAGRANT_HOME=$SETUP_WORKSPACE/vagrant.d
+
+# let's see what is actually there:
+find $SETUP_WORKSPACE | grep -v fdroiddata/metadata/ | cut -b43-9999
+
+# 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
-python2 setup.py sdist
-
-rm -rf $WORKSPACE/env
-virtualenv --python=python2 $WORKSPACE/env
-. $WORKSPACE/env/bin/activate
-pip install dist/fdroidserver-*.tar.gz
 
-# run tests in new pip+virtualenv install
-fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests $apksource
+# 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
 
-#------------------------------------------------------------------------------#
-# test install using install direct from git repo
+# now build the whole archive
 cd $WORKSPACE
-rm -rf $WORKSPACE/env
-virtualenv --python=python2 --system-site-packages $WORKSPACE/env
-. $WORKSPACE/env/bin/activate
-pip install -e $WORKSPACE
-python2 setup.py install
-
-# run tests in new pip+virtualenv install
-fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests $apksource
 
+# 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
+    # no don't `git clean` here, it'll wipe the APKs in unsigned/
+else
+    git clone https://gitlab.com/fdroid/fdroiddata.git fdroiddata
+    cd fdroiddata
+fi
 
-#------------------------------------------------------------------------------#
-# run git pre-commit hook for pep8, pyflakes, etc
-sh hooks/pre-commit
-
-
-#------------------------------------------------------------------------------#
-# run pylint
-
-cd $WORKSPACE
-set +e
-# use the virtualenv python so pylint checks against its installed libs
-    PYTHONPATH=$WORKSPACE/.pylint-plugins python2 /usr/bin/pylint \
-        --output-format=parseable --reports=n \
-        --load-plugins astng_hashlib \
-        fdroidserver/*.py fdroid makebuildserver setup.py > $WORKSPACE/pylint.parseable
-
-# to only tell jenkins there was an error if we got ERROR or FATAL, uncomment these:
-# running pylint in the virtualenv is causing this FATAL error, which is a bug:
-# https://bitbucket.org/logilab/pylint/issue/73/pylint-is-unable-to-import
-[ $(($? & 1)) = "1" ] && echo "FATALs found"
-[ $(($? & 2)) = "2" ] && exit 2
-[ $(($? & 4)) = "4" ] && exit 4
-set -e
+echo "build_server_always = True" > config.py
+$WORKSPACE/fdroid build --verbose --latest --no-tarball --all
 
+vagrant global-status
+cd builder
+vagrant status