[Qa-jenkins-scm] [jenkins.debian.net] 03/05: reproducible: scheduler, build: accept a --noisy option to tell the builder to announce the build (with the build url) in the IRC channel

Holger Levsen holger at moszumanska.debian.org
Sun Jul 5 13:04:01 UTC 2015


This is an automated email from the git hooks/post-receive script.

holger pushed a commit to branch master
in repository jenkins.debian.net.

commit c74659e18e48a18ff8e941ea982eec94c95f5297
Author: Mattia Rizzolo <mattia at mapreri.org>
Date:   Sat Jun 20 20:26:54 2015 +0000

    reproducible: scheduler,build: accept a --noisy option to tell the builder to announce the build (with the build url) in the IRC channel
---
 bin/reproducible_build.sh            |  6 +++++-
 bin/reproducible_remote_scheduler.py | 20 +++++++++++++++-----
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh
index 8a1522f..7a0c8bb 100755
--- a/bin/reproducible_build.sh
+++ b/bin/reproducible_build.sh
@@ -325,7 +325,7 @@ call_debbindiff() {
 }
 
 choose_package () {
-	local RESULT=$(sqlite3 -init $INIT ${PACKAGES_DB} "SELECT s.suite, s.id, s.name, sch.date_scheduled, sch.save_artifacts, sch.notify, s.notify_maintainer FROM schedule AS sch JOIN sources AS s ON sch.package_id=s.id WHERE sch.date_build_started = '' ORDER BY date_scheduled LIMIT 1")
+	local RESULT=$(sqlite3 -init $INIT ${PACKAGES_DB} "SELECT s.suite, s.id, s.name, sch.date_scheduled, sch.save_artifacts, sch.notify, s.notify_maintainer, sch.builder FROM schedule AS sch JOIN sources AS s ON sch.package_id=s.id WHERE sch.date_build_started = '' ORDER BY date_scheduled LIMIT 1")
 	SUITE=$(echo $RESULT|cut -d "|" -f1)
 	SRCPKGID=$(echo $RESULT|cut -d "|" -f2)
 	SRCPACKAGE=$(echo $RESULT|cut -d "|" -f3)
@@ -342,6 +342,10 @@ choose_package () {
 	SAVE_ARTIFACTS=$(echo $RESULT|cut -d "|" -f5)
 	NOTIFY=$(echo $RESULT|cut -d "|" -f6)
 	NOTIFY_MAINTAINER=$(echo $RESULT|cut -d "|" -f7)
+	local DEBUG_URL=$(echo $RESULT|cut -d "|" -f8)
+	if [ "$DEBUG_URL" = "TBD" ] ; then
+		irc_message "The build of $SRCPACKAGE/$SUITE is starting at ${BUILD_URL}consoleFull"
+	fi
 	if [ -z "$RESULT" ] ; then
 		echo "No packages scheduled, sleeping 30m."
 		sleep 30m
diff --git a/bin/reproducible_remote_scheduler.py b/bin/reproducible_remote_scheduler.py
index 86f235b..db4bce4 100755
--- a/bin/reproducible_remote_scheduler.py
+++ b/bin/reproducible_remote_scheduler.py
@@ -21,6 +21,8 @@ group.add_argument('-a', '--artifacts', default=False, action='store_true',
                    help='Save artifacts (for further offline study)')
 group.add_argument('-n', '--no-notify', default=False, action='store_true',
                    help='Do not notify the channel when the build finish')
+parser.add_argument('--noisy', action='store_true', help='Also notify when ' +
+                    'the build start, linking the build url. This disables -n.')
 parser.add_argument('-m', '--message', default='', nargs='+',
                     help='A text to be sent to the IRC channel when notifying' +
                     ' about the scheduling')
@@ -64,13 +66,15 @@ suite = scheduling_args.suite
 reason = ' '.join(scheduling_args.message)
 packages = scheduling_args.packages
 artifacts = scheduling_args.artifacts
-notify = not scheduling_args.no_notify  # note the notify vs no-notify
+notify = not scheduling_args.no_notify or scheduling_args.noisy
+debug_url = scheduling_args.noisy
 
 log.debug('Requester: ' + requester)
 log.debug('Local call: ' + str(local))
 log.debug('Reason: ' + reason)
 log.debug('Artifacts: ' + str(artifacts))
 log.debug('Notify: ' + str(notify))
+log.debug('Debug url: ' + str(debug_url))
 log.debug('Architecture: ' + defaultarch)
 log.debug('Suite: ' + suite)
 log.debug('Packages: ' + ' '.join(packages))
@@ -88,10 +92,13 @@ if len(packages) > 50 and notify:
                  'channel this much use a loop to achive that.' + bcolors.ENDC)
     sys.exit(1)
 
-if scheduling_args.artifacts:
+if artifacts:
     log.info('The artifacts of the build(s) will be saved to the location '
              'mentioned at the end of the build log(s).')
 
+if debug_url:
+    log.info('The channel will be notified when the build starts')
+
 ids = []
 pkgs = []
 
@@ -166,15 +173,18 @@ if amount + len(ids) > 50 and not local:
 to_schedule = []
 save_schedule = []
 notify = '' if not notify else notify
+debug_url = '' if not debug_url else 'TBD'
 for id in ids:
     artifacts_value = 1 if artifacts else 0
-    to_schedule.append((id, date, artifacts_value, str(notify).lower(), requester))
+    to_schedule.append((id, date, artifacts_value, str(notify).lower(),
+                        requester, debug_url))
     save_schedule.append((id, requester, epoch))
 log.debug('Packages about to be scheduled: ' + str(to_schedule))
 
 query1 = '''REPLACE INTO schedule
-    (package_id, date_scheduled, date_build_started, save_artifacts, notify, scheduler)
-    VALUES (?, ?, "", ?, ?, ?)'''
+    (package_id, date_scheduled, date_build_started, save_artifacts, notify,
+    scheduler, builder)
+    VALUES (?, ?, "", ?, ?, ?, ?)'''
 query2 = '''INSERT INTO manual_scheduler
     (package_id, requester, date_request) VALUES (?, ?, ?)'''
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/qa/jenkins.debian.net.git



More information about the Qa-jenkins-scm mailing list