summaryrefslogtreecommitdiffstats
path: root/bin/reproducible_worker.sh
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2017-04-26 15:59:16 +0200
committerHolger Levsen <holger@layer-acht.org>2017-04-26 15:59:16 +0200
commit1736e1fb44e9a26a286583be5d1a01c42e8afed2 (patch)
treeed22784ca433aadfc6667d62059f8d525395f3b9 /bin/reproducible_worker.sh
parenta660d207be25f9abbfcf972a2bf0e603b7f0b10d (diff)
downloadjenkins.debian.net-1736e1fb44e9a26a286583be5d1a01c42e8afed2.tar.xz
reproducible Debian: rename _build_service_worker.sh to worker.sh
Signed-off-by: Holger Levsen <holger@layer-acht.org>
Diffstat (limited to 'bin/reproducible_worker.sh')
-rwxr-xr-xbin/reproducible_worker.sh64
1 files changed, 64 insertions, 0 deletions
diff --git a/bin/reproducible_worker.sh b/bin/reproducible_worker.sh
new file mode 100755
index 00000000..62006f79
--- /dev/null
+++ b/bin/reproducible_worker.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+# Copyright © 2017 Holger Levsen (holger@layer-acht.org)
+# released under the GPLv=2
+
+set -e
+
+WORKER_NAME=$1
+NODE1=$2
+NODE2=$3
+
+# normally defined by jenkins and used by reproducible_common.sh
+JENKINS_URL=https://jenkins.debian.net
+
+DEBUG=false
+. /srv/jenkins/bin/common-functions.sh
+common_init "$@"
+
+# common code defining db access
+. /srv/jenkins/bin/reproducible_common.sh
+
+# endless loop
+while true ; do
+ #
+ # check if we really should be running
+ #
+ RUNNING=$(ps fax|grep -v grep|grep "$0 $1 ")
+ if [ -z "$RUNNING" ] ; then
+ echo "$(date --utc) - '$0 $1' already running, thus stopping this."
+ break
+ fi
+ SERVICE="reproducible_build@startup.service"
+ RUNNING=$(systemctl show $SERVICE|grep ^SubState|cut -d "=" -f2)
+ if [ "$RUNNING" != "running" ] ; then
+ echo "$(date --utc) - '$SERVICE' not running, thus stopping this."
+ break
+ fi
+
+ # sleep up to 2.3 seconds (additionally to the random sleep reproducible_build.sh does anyway)
+ /bin/sleep $(echo "scale=1 ; $(shuf -i 1-23 -n 1)/10" | bc )
+
+ #
+ # increment BUILD_ID
+ #
+ BUILD_BASE=/var/lib/jenkins/userContent/reproducible/debian/build_service/$WORKER_NAME
+ OLD_ID=$(ls -1rt $BUILD_BASE|egrep -v "(latest|worker.log)" |sort -n|tail -1)
+ let BUILD_ID=OLD_ID+1
+ mkdir -p $BUILD_BASE/$BUILD_ID
+ rm -f $BUILD_BASE/latest
+ ln -sf $BUILD_ID $BUILD_BASE/latest
+
+ #
+ # prepare variables for export
+ #
+ export BUILD_URL=https://jenkins.debian.net/userContent/build_service/$WORKER_NAME/
+ export BUILD_ID=$BUILD_ID
+ export JOB_NAME="reproducible_builder_$WORKER_NAME"
+ export
+
+ #
+ # actually run reproducible_build.sh
+ #
+ /srv/jenkins/bin/reproducible_build.sh $NODE1 $NODE2 >$BUILD_BASE/$BUILD_ID/console.log 2>&1
+done