summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2014-10-28 01:40:04 +0100
committerHolger Levsen <holger@layer-acht.org>2014-10-28 02:55:38 +0100
commit132edaad169fa798fc8a84818b5b23c57dd57f35 (patch)
tree997afbdc9d5084bd17859295d0e09587aa625293
parent2fb94ec4f104bb98f1889071f404a97eee20da94 (diff)
downloadjenkins.debian.net-132edaad169fa798fc8a84818b5b23c57dd57f35.tar.xz
d-i: drop d-i_parse_build_logs job. add 15 new ones, d-i_overview_$arch.
Each jobs checks the build status for its arch. There are no irc notifictations yet, as currently the jobs are run 24 times a day and I don't want 24 notifications a day..."
-rwxr-xr-xbin/d-i_overview.sh42
-rwxr-xr-xbin/d-i_parse_logs.sh38
-rw-r--r--job-cfg/d-i-overview.yaml.py75
-rw-r--r--job-cfg/d-i.yaml22
4 files changed, 117 insertions, 60 deletions
diff --git a/bin/d-i_overview.sh b/bin/d-i_overview.sh
new file mode 100755
index 00000000..2c1fc35f
--- /dev/null
+++ b/bin/d-i_overview.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# Copyright 2014 Holger Levsen <holger@layer-acht.org>
+# released under the GPLv=2
+
+DEBUG=false
+. /srv/jenkins/bin/common-functions.sh
+common_init "$@"
+
+# convert param to variables
+if [ "$1" == "" ] ; then
+ echo "need an Archicture to act on"
+ exit 1
+fi
+ARCH=$1
+URL=http://d-i.debian.org/daily-images/daily-build-overview.html
+
+TMPFILE=$(mktemp)
+MISSING=$(mktemp)
+FAILED=$(mktemp)
+CLEAN=true
+
+curl -s -S $URL -o $TMPFILE
+echo "Checking $URL for build issues on $ARCH."
+
+# http://anonscm.debian.org/viewvc/d-i/trunk/scripts/daily-build-overview?view=markup is used to generate the HTML
+awk '/ul id="missingarchs/,/<\/ul>/' $TMPFILE > $MISSING
+awk '/ul id="failedarchs/,/<\/ul>/' $TMPFILE > $FAILED
+if grep -q "<li><a href=\"#$ARCH\"" $MISSING ; then
+ echo "Warning: Build for $ARCH is missing!"
+ CLEAN=false
+fi
+if grep -q "<li><a href=\"#$ARCH\"" $FAILED ; then
+ echo "Failure: Build for $ARCH failed!"
+ exit 1
+fi
+if $CLEAN ; then
+ echo "None found."
+fi
+echo
+
+rm $TMPFILE $FAILED $MISSING
diff --git a/bin/d-i_parse_logs.sh b/bin/d-i_parse_logs.sh
deleted file mode 100755
index 074c7f39..00000000
--- a/bin/d-i_parse_logs.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-
-# Copyright 2012-2014 Holger Levsen <holger@layer-acht.org>
-# released under the GPLv=2
-
-DEBUG=false
-. /srv/jenkins/bin/common-functions.sh
-common_init "$@"
-
-# convert param to variables
-if [ "$1" == "" ] ; then
- echo "need at least one URL to act on"
- echo '# $1 = URL'
- exit 1
-fi
-URL=$1
-
-TMPFILE=$(mktemp)
-curl $URL > $TMPFILE
-if [ $(grep -c failed $TMPFILE 2>/dev/null ) -gt 1 ] ; then
- figlet Warning:
- figlet failed builds:
- for FILE in $(grep failed $TMPFILE | awk '{print $2}' FS=href= | cut -d '"' -f2) ; do
- echo Warning: $FILE failed
- done
-elif [ $(grep buildd $TMPFILE 2>/dev/null|grep -v "$(date +'%b %d')"|grep -v "$(date --date yesterday +'%b %d')"|grep -v "See also"|wc -l ) -gt 0 ] ; then
- echo "Warning: outdated builds:"
- figlet outdated builds
- grep buildd $TMPFILE 2>/dev/null|grep -v "$(date +'%b %d')"| grep -v "$(date --date yesterday +'%b %d')" |grep -v "See also"
-else
- figlet ok
-fi
-echo
-echo Check $1 yourself
-echo
-
-sed -i -s 's#<img src="#<img src="http://d-i.debian.org/daily-images/#g' $TMPFILE
-mv $TMPFILE $(basename $URL)
diff --git a/job-cfg/d-i-overview.yaml.py b/job-cfg/d-i-overview.yaml.py
new file mode 100644
index 00000000..e9b0b715
--- /dev/null
+++ b/job-cfg/d-i-overview.yaml.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+
+archs = """
+ amd64
+ arm64
+ armel
+ armhf
+ hurd-i386
+ i386
+ kfreebsd-amd64
+ kfreebsd-i386
+ mips
+ mipsel
+ powerpc
+ ppc64el
+ s390x
+ sparc
+ """.split()
+
+print("""
+- defaults:
+ name: d-i
+ project-type: freestyle
+ logrotate:
+ daysToKeep: 90
+ numToKeep: 30
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+ properties:
+ - sidebar:
+ url: https://jenkins.debian.net/userContent/about.html
+ text: About jenkins.debian.net
+ icon: /userContent/images/debian-swirl-24x24.png
+ - sidebar:
+ url: https://jenkins.debian.net/view/d-i_misc/
+ text: Misc debian-installer jobs
+ icon: /userContent/images/debian-jenkins-24x24.png
+ - sidebar:
+ url: http://www.profitbricks.com
+ text: Sponsored by Profitbricks
+ icon: /userContent/images/profitbricks-24x24.png
+""")
+
+for arch in sorted(archs):
+ print("""- job-template:
+ defaults: d-i
+ name: '{name}_overview_%(arch)s'
+ description: 'Parses d-i build overview for problems on %(arch)s from <code>http://d-i.debian.org/daily-images/daily-build-overview.html</code> daily. {do_not_edit}'
+ builders:
+ - shell: '/srv/jenkins/bin/d-i_overview.sh %(arch)s'
+ triggers:
+ - timed: "0 */6 * * *"
+ publishers:
+ - logparser:
+ parse-rules: '/srv/jenkins/logparse/debian-installer.rules'
+ unstable-on-warning: 'true'
+ fail-on-error: 'true'
+ - email:
+ recipients: holger@layer-acht.org
+ notify-every-unstable-build: false
+# recipients: jenkins+debian-boot holger@layer-acht.org
+""" % dict(arch=arch))
+
+print("""
+- project:
+ name: d-i
+ do_not_edit: '<br><br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/job-cfg/d-i-overview.yaml.py">d-i-overview.yaml.py</a>.'
+ jobs:""")
+for arch in sorted(archs):
+ print(""" - '{name}_overview_%(arch)s'"""
+ % dict(arch=arch))
+
+
+
+
diff --git a/job-cfg/d-i.yaml b/job-cfg/d-i.yaml
index 1f2c19ac..ade704bb 100644
--- a/job-cfg/d-i.yaml
+++ b/job-cfg/d-i.yaml
@@ -311,27 +311,6 @@
- job-template:
defaults: d-i
- name: '{name}_parse_build_logs'
- description: 'Parses d-i build logs from <code>http://d-i.debian.org/daily-images/build-logs.html</code> daily. {do_not_edit}'
- builders:
- - shell: '/srv/jenkins/bin/d-i_parse_logs.sh http://d-i.debian.org/daily-images/build-logs.html'
- triggers:
- - timed: "0 5 * * *"
- publishers:
- - logparser:
- parse-rules: '/srv/jenkins/logparse/debian-installer.rules'
- unstable-on-warning: 'true'
- fail-on-error: 'true'
- - email:
- recipients: jenkins+debian-boot holger@layer-acht.org
- - htmlpublisher:
- name: 'Daily d-i build logs'
- directory: '.'
- indexfiles: 'build-logs.html'
- keepall: True
-
-- job-template:
- defaults: d-i
name: '{name}_check_jenkins_jobs'
description: 'Checks daily for missing jenkins jobs. {do_not_edit}'
builders:
@@ -836,7 +815,6 @@
do_not_edit: '<br><br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/job-cfg/d-i.yaml">d-i.yaml</a>.'
jobs:
- '{name}_housekeeping'
- - '{name}_parse_build_logs'
- '{name}_check_jenkins_jobs'
- '{name}_manual':
include: '/trunk/manual/debian/.*