[Qa-jenkins-scm] [jenkins.debian.net] 01/01: reproducible: add new page, live_status.html

Holger Levsen holger at moszumanska.debian.org
Thu Sep 10 19:42:34 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 94033b39cec1b0d4e0c6d9f25f82a5563fc8c58c
Author: Holger Levsen <holger at layer-acht.org>
Date:   Thu Sep 10 21:41:57 2015 +0200

    reproducible: add new page, live_status.html
---
 bin/reproducible_html_live_status.py | 52 ++++++++++++++++++++++++++++++++++++
 job-cfg/reproducible.yaml            | 10 +++++++
 2 files changed, 62 insertions(+)

diff --git a/bin/reproducible_html_live_status.py b/bin/reproducible_html_live_status.py
new file mode 100755
index 0000000..97ea8ed
--- /dev/null
+++ b/bin/reproducible_html_live_status.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2015 Holger Levsen <holger at layer-acht.org>
+# based on ~jenkins.d.n:~mattia/status.sh by Mattia Rizzolo <mattia at mapreri.org>
+# Licensed under GPL-2
+#
+# Depends: python3
+#
+
+from reproducible_common import *
+
+def generate_live_status():
+    """ the schedule pages are very different than others index pages """
+    log.info('Building live status page...')
+    title = 'Live status of reproducible.debian.net'
+    query = 'SELECT s.id, s.name, s.version, s.suite, s.architecture AS arch, ' + \
+            'p.scheduler, p.date_scheduled as "scheduled on", p.date_build_started AS "build started on", ' + \
+            'r.status, r.version, r.build_duration AS duration, p.builder, p.notify' + \
+            'FROM sources AS s JOIN schedule AS p ON p.package_id=s.id LEFT JOIN results AS r ON s.id=r.package_id' + \
+            'WHERE p.scheduler != "" OR p.date_build_started != "" OR p.notify != ""' + \
+            'ORDER BY date_scheduled desc;'
+    html = ''
+    rows = query_db(query)
+    html += '<p><table class="scheduled">\n' + tab
+    html += '<tr><th>#</th><th>src pkg id</th><th>name</th><th>version</th>'
+    html += '<th>suite</th><th>arch</th><th>scheduled by</th>'
+    html += '<th>scheduled on</th><th>build started</th><th>status</th>'
+    html += '<tr><th>version building</th><th>previous build duration</th><th>builder job</th><th>notify</th>'
+    html += '</tr>\n'
+    for row in rows:
+        pkg = row[1]
+        arch = row[4]
+        suite = row[3]
+        url = RB_PKG_URI + '/' + suite + '/' + arch + '/' + pkg + '.html'
+        html += tab + '<tr><td> </td><td>' + row[0] + '</td>'
+        html += '<td><code>'
+        html += link_package(pkg, suite, arch)
+        html += '</code></td>'
+        html += '<td>' + row[1] + '</td><td>' + row[2] + '</td><td>' + row[3] + '</td>'
+        html += '<td>' + row[4] + '</td><td>' + row[5] + '</td><td>' + row[6] + '</td>'
+        html += '<td>' + row[7] + '</td><td>' + row[8] + '</td><td>' + row[9] + '</td>'
+        html += '<td>' + row[10] + '</td><td>' + row[11] + '</td><td>' + row[12] + '</td>'
+        html += '</tr>\n'
+    html += '</table></p>\n'
+    destfile = BASE + '/live_status.html'
+    desturl = REPRODUCIBLE_URL + '/live_status.html'
+    write_html_page(title=title, body=html, destfile=destfile, style_note=True)
+
+if __name__ == '__main__':
+    generate_live_status
+
diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml
index 4778e87..4e65390 100644
--- a/job-cfg/reproducible.yaml
+++ b/job-cfg/reproducible.yaml
@@ -350,6 +350,10 @@
 
 - job-template:
     defaults: reproducible
+    name: '{name}_html_live_status'
+
+- job-template:
+    defaults: reproducible
     name: '{name}_create_meta_pkg_sets'
 
 - job-template:
@@ -742,6 +746,12 @@
             my_shell: '/srv/jenkins/bin/reproducible_html_breakages.py'
             my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org'
             my_node: ''
+        - '{name}_html_live_status':
+            my_description: 'Generate an HTML page showing the live status of all builds happening or scheduled by humans.'
+            my_timed: 'H/20 * * * *'    # should be H/2 once it works properly
+            my_shell: '/srv/jenkins/bin/reproducible_html_live_status.py'
+            my_recipients: 'qa-jenkins-scm at lists.alioth.debian.org'
+            my_node: ''
         - '{name}_json':
             my_description: 'Generate https://reproducible.debian.net/userContent/reproducible.json for consumption by tracker.debian.org.'
             my_timed: '1 * * * *'

-- 
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