2012-05-16 7 views
5

Ich suche nach einer Lösung, die uns Ausfälle bauen kategorisieren lassen würde:Wie kategorisieren Build-Fehler mit Jenkins?

  • Entwickler (Entwickler hinzugefügt fehlerhaften Code)
  • Build-System (Fehler im Build-System)
  • Infrastrukturproblem (Server reagiert nicht)

Es wäre toll, wenn diese automatisch die meiste Zeit, auf der Grundlage der Ausgabe der Konsole getan werden könnte, sondern müssen auch wir eine Option ab zu machen um einen bestimmten Status zu haben.

Wie können wir dieses Verhalten von Jenkins erhalten?

+1

Ist Ihre Frage, dass (1) Sie bereits einen Mechanismus zur Bestimmung von Fehlerursachen haben und nur nach Möglichkeiten suchen, diese korrekt zu melden oder (2) dass Sie nach Wegen zur Implementierung eines solchen Mechanismus suchen? –

+0

Angenommen, ich könnte die Fehlererkennung selbst implementieren, aber ich muss einen Weg finden, den Fehlergrund in der jenkins-Datenbank zu speichern. Wenn so etwas nicht existiert, würde ich eine Reihe von Hinweisen für die Implementierung akzeptieren. – sorin

Antwort

1

Für Berichtszwecke können Sie Build Beschreibung (bearbeiten sie manuell, um zu sehen, wie es zu http://[jenkins_server]/job/[job_name]/[build_number]/editDescription gehen funktioniert, oder klicken Sie auf ‚Hinzufügen Beschreibung‘ auf der Build-Statusseite) verwenden.

Programmgesteuert können Sie über Jenkins CLI (set-build-description Befehl); oder von Groovy über Jenkins Java API - Run::setDescription() Methode.

Groovy-Skripte können entweder über Groovy Plugin oder Groovy PostBuild Plugin oder beides aufgerufen werden.

2

Mit der Build Failure Analyzer plugin können Sie reguläre Ausdrücke für die Kategorisierung von aktuellen und zukünftigen Builds festlegen. Sobald die regulären Ausdrücke festgelegt wurden, erfolgt die Erkennung für aktuelle und zukünftige Builds automatisch. Dies kann genau das sein, wonach Sie suchen.

Ich habe auch eine leichte, manuelle Fehler Kategorisierung Plug-in für Jenkins implementiert, die eine einfache Dropdown-und zusätzliche Textfeld für die Kategorisierung von Fehlern von Hand bietet. Dies wurde für ein Forschungsprojekt zur Untersuchung von Baufehlern durchgeführt. Kategorisierungen werden derzeit als separate XML-Dateien in jedem Build-Verzeichnis gespeichert, um keine Auswirkungen auf Jenkins 'eigene Dateien zu haben. Kategorien werden in Build-Listen und auf einer separaten Kategorisierungsseite für jeden Build angezeigt.

Lightweight Jenkins plugin for manual failure categorization

Ich muss leider sagen, dass das Plugin derzeit nicht überall geteilt wird, wie es einige schwer Codierungen für ein bestimmtes Projekt enthält. Wenn Bedarf für ein solches Plug-in besteht, kann ich den Code erneut aufrufen und ihn als Open Source veröffentlichen. Für Ihre Zwecke scheint jedoch die automatische Lösung von Build Failure Analyzer besser geeignet zu sein.

Das Plug-in ist sehr einfach und ähnliche Dinge sind nicht schwer zu implementieren. Wenn Sie selbst etwas Ähnliches erstellen oder das automatisierte Build Failure Analyzer-Plug-In auf Ihre Anforderungen erweitern möchten, sind die Seiten Jenkins plugin tutorial und Extend Jenkins ein guter Ausgangspunkt für die Jenkins-Plug-in-Entwicklung. Für die Persistenz wäre es hilfreich, sich mit XStream vertraut zu machen, denn Jenkins und die meisten Plug-Ins verwenden intern Daten, um Daten in XML zu serialisieren.

+0

Sie sollten so von Ihrem Code teilen! GitHub Gist ist eine Option - fügen Sie einfach einen Link in Kommentaren hier hinzu. Ich muss herausfinden, welche Tests am häufigsten ausfallen. Build Failure Analyzer erlaubt es, die Build-Fehler zu identifizieren, aber dann muss ich einige Statistiken über die Fehler machen. Sagen wir, in der letzten Woche hatten wir eine fehlgeschlagene X-Zeit, B versagt Y-mal, C versagt Y-mal usw. – sakovias

1

Dieses Tool, an dem ich arbeitete, könnte Ihnen helfen: https://github.com/nacuteodor/SearchInJenkinsLogs. Dies kann mit einem Jenkins-Job integriert werden. Sie können einen gesuchten Text finden, der einen regulären Ausdruck in Buildartefakten angibt oder Fehler testet, und er wird die Buildknoten und die Links für fehlgeschlagene Testsberichte nach Build und Tests sortiert ausgeben. Außerdem verfügt es über eine Funktion zum Gruppieren der häufigen ähnlichen Fehler unter Verwendung eines maximalen Differenzschwellenwerts, sortiert nach Gruppenfehleranzahl.

Sie können dieses Tool verwenden, um Abstürze in Artefaktprotokollen zu finden, die gemeldet und repariert werden sollen, und Sie können veranlassen, dass der Job eine E-Mail-Benachrichtigung sendet oder die Erstellung des Tooljobs fehlschlägt. Ich werde in der Zukunft einige andere Funktionen hinzufügen.