diff options
-rw-r--r-- | TODO | 6 | ||||
-rwxr-xr-x | bin/jenkins_node_wrapper.sh | 2 | ||||
-rw-r--r-- | bin/reproducible_fdroid_test.sh | 51 | ||||
-rw-r--r-- | job-cfg/reproducible.yaml | 14 |
4 files changed, 67 insertions, 6 deletions
@@ -360,12 +360,6 @@ notes on source and binary versions: *** or: "fdroid build -l org.fdroid.fdroid" to build the latest ** run diffopscope on the results -* let froidserver.git trigger the setup job -* make setup job fail, when a build job is running -* make build job wait ("forever"), when a setup job is running -* later, get a list of all available apps by listing fdroiddata/metadata/*.txt -* later: switch reproducible_build_fdroid_apk.sh to F-Droid 'Verification Server' - * also see https://f-droid.org/wiki/page/Build_Server_Setup * diskspace needs: diff --git a/bin/jenkins_node_wrapper.sh b/bin/jenkins_node_wrapper.sh index 7413b0ad..ee39552a 100755 --- a/bin/jenkins_node_wrapper.sh +++ b/bin/jenkins_node_wrapper.sh @@ -136,6 +136,8 @@ elif [[ "$*" =~ ^reproducible_setup_schroot_archlinux ]] ; then exec /srv/jenkins/bin/reproducible_setup_archlinux_schroot.sh ; croak "Exec failed"; elif [[ "$*" =~ ^reproducible_fdroid_build_apps ]] ; then exec /srv/jenkins/bin/reproducible_fdroid_build_apps.sh ; croak "Exec failed"; +elif [[ "$*" =~ ^reproducible_fdroid_test ]] ; then + exec /srv/jenkins/bin/reproducible_fdroid_test.sh ; croak "Exec failed"; elif [[ "$*" =~ ^reproducible_setup_fdroid_build_environment ]] ; then exec /srv/jenkins/bin/reproducible_setup_fdroid_build_environment.sh ; croak "Exec failed"; elif [[ "$*" =~ ^reproducible_setup_mock_fedora-23_x86_64 ]] ; then diff --git a/bin/reproducible_fdroid_test.sh b/bin/reproducible_fdroid_test.sh new file mode 100644 index 00000000..a7bd8662 --- /dev/null +++ b/bin/reproducible_fdroid_test.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# Copyright © 2015-2017 Holger Levsen (holger@layer-acht.org) +# Copyright © 2017 Hans-Christoph Steiner (hans@guardianproject.info) +# released under the GPLv=2 + +# +# + +DEBUG=true +. /srv/jenkins/bin/common-functions.sh +common_init "$@" + +# common code +. /srv/jenkins/bin/reproducible_common.sh + +GIT_REPO=https://gitlab.com/fdroid/fdroidserver + +# define and clean work space on the machine actually running the +# build. jenkins.debian.net does not use Jenkins slaves. Instead +# /srv/jenkins/bin/jenkins_master_wrapper.sh runs this script on the +# slave using a directly call to ssh, so this script has to do all +# of the workspace setup. +export WORKSPACE=$BASE/reproducible_fdroid_build_apps +if [ -e $WORKSPACE/.git ]; then + # reuse the git repo if possible, to keep all the setup in fdroiddata/ + cd $WORKSPACE + git remote set-url origin $GIT_REPO + git fetch --tags + git clean -fdx + git reset --hard + git checkout master + git reset --hard origin/master + git clean -fdx +else + rm -rf $WORKSPACE + git clone $GIT_REPO $WORKSPACE + cd $WORKSPACE +fi + +cleanup_all() { + # no long lived processes, nothing to be done + echo "$(date -u) - cleanup done." +} +trap cleanup_all INT TERM EXIT + +./jenkins-test + +# remove trap +trap - INT TERM EXIT +echo "$(date -u) - the end." diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml index 0e9bd56f..cf11fbbc 100644 --- a/job-cfg/reproducible.yaml +++ b/job-cfg/reproducible.yaml @@ -701,6 +701,20 @@ my_parse_rules: '/srv/jenkins/logparse/reproducible-extra.rules' my_naginator_regex: 'Caused by: hudson.plugins.git.GitException: Command "git fetch' + - '{name}_{otherproject_git_blocked}': + otherproject_git_blocked: + - 'fdroid_test': + my_description: 'Run tests on all the built APKs for F-Droid.' + my_timed: '42 23 1 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 michael.poehn@fsfe.org' + my_blocker: '^reproducible_fdroid.*' + my_gitbranches: 'master' + my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh' + my_parse_rules: '/srv/jenkins/logparse/reproducible-extra.rules' + my_naginator_regex: 'Caused by: hudson.plugins.git.GitException: Command "git fetch' + - '{name}_{otherproject_git}': otherproject_git: - 'reprotest_from_git_master': |