2012-05-16 18 views
5

szukam rozwiązania, które pozwoliłoby nam kategoryzować budować awarie takie jak:Jak kategoryzować awarie budowania za pomocą jenkins?

  • programista (deweloper dodaje zły kod)
  • kompilacji systemu (błąd w systemie kompilacji)
  • problemu infrastruktury (serwery nie odpowiada)

byłoby wspaniale, gdyby można to zrobić automatycznie przez większość czasu, w oparciu o wyjście konsoli, ale także musimy opcję aby ab uild ma pewien status.

Jak możemy uzyskać to zachowanie od Jenkins?

+1

Czy Twoje pytanie dotyczy: (1) masz już mechanizm ustalania przyczyn niepowodzenia i szukasz tylko sposobów, aby je odpowiednio zgłosić lub (2), że szukasz sposobów na wdrożenie takiego mechanizmu? –

+0

Powiedzmy, że sam mógłbym wdrożyć wykrywanie awarii, ale muszę znaleźć sposób na przechowywanie przyczyny niepowodzenia w bazie danych Jenkins. Jeśli nic takiego nie istnieje, zaakceptowałbym zestaw wskazówek, jak go wdrożyć. – sorin

Odpowiedz

1

Dla celów sprawozdawczych można użyć opisu gromadzeniu (aby go edytować ręcznie, aby zobaczyć jak to działa iść do http://[jenkins_server]/job/[job_name]/[build_number]/editDescription lub kliknąć na „dodaj opis” na stronie stanu kompilacji).

Programowo można ustawić za pomocą polecenia (set-build-description); lub z metody Groovy via Jenkins Java API - Run::setDescription().

Skrypty Groovy można wywoływać przez Groovy Plugin lub Groovy PostBuild Plugin lub obie.

2

Opcja Build Failure Analyzer plugin umożliwia ustawienie wyrażeń regularnych do kategoryzacji bieżących i przyszłych wersji. Po ustawieniu wyrażeń regularnych wykrywanie jest automatyczne dla bieżących i przyszłych wersji. To może być dokładnie to, o co prosisz.

Wprowadziłem również lekką, ręczną kategoryzację awarii dla Jenkins, która zapewnia proste rozwijane i dodatkowe pole tekstowe do ręcznego kategoryzowania awarii. Dokonano tego dla projektu badawczego badającego awarie instalacji. Kategoryzacje są obecnie zapisywane jako oddzielne pliki XML w katalogu każdego kompilatora, aby nie wpływać na własne pliki Jenkins. Kategorie są wyświetlane w informacjach o kompilacji i na oddzielnej stronie kategoryzacji dla każdej kompilacji.

Lightweight Jenkins plugin for manual failure categorization

przykrością muszę powiedzieć, że wtyczka nie jest obecnie udostępniony w dowolnym miejscu, ponieważ zawiera kilka twardych zakodowania konkretnego projektu. Jeśli istnieje zapotrzebowanie na taką wtyczkę, mogę ponownie odwiedzić kod i opublikować go jako open source. Jednak dla waszych celów wydaje się, że bardziej odpowiednie byłoby automatyczne rozwiązanie Build Analyzer kompilacji.

Wtyczka jest bardzo prosta i podobne rzeczy nie są trudne do wdrożenia. Jeśli chcesz zrobić coś podobnego samemu lub rozszerzyć automatyczną wtyczkę Build Failure Analyzer do swoich potrzeb, strony Jenkins plugin tutorial i Extend Jenkins są dobrym punktem wyjścia do rozwoju wtyczek Jenkins. Dla trwałości, zapoznanie się z XStream byłoby korzystne, ponieważ to właśnie Jenkins i większość wtyczek używa wewnętrznie do serializowania danych do XML.

+0

Powinieneś udostępniać swój kod! GitHub Gist jest opcją - po prostu dodaj link w komentarzach tutaj. Muszę dowiedzieć się, które testy zawodzą najczęściej. Build Failure Analyzer pozwala zidentyfikować awarie kompilacji, ale wtedy muszę wykonać pewne statystyki dotyczące awarii. Powiedzmy, że w zeszłym tygodniu mieliśmy A niepomyślny czas X, B nie powiodło się Y razy, C zawiedli Y razy itd. – sakovias

1

To narzędzie, nad którym pracowałem, może pomóc: https://github.com/nacuteodor/SearchInJenkinsLogs. Można to zintegrować z pracą Jenkinsa. Możesz znaleźć wyszukiwany tekst określający wyrażenie regularne w kompilacjach artefaktów lub testuje awarie i wydrukuje węzły kompilacji i nieudane testy zgłasza łącza posortowane według kompilacji i testów. Ponadto ma funkcję grupowania typowych podobnych awarii przy użyciu maksymalnego progu różnicy, posortowanego według liczby awarii grup.

Możesz użyć tego narzędzia do znajdowania awarii w dziennikach artefaktów, które chcesz zgłosić i naprawić a.s.a.p, i możesz sprawić, że zadanie zostanie wysłane e-mailem z powiadomieniem lub nie powiedzie się wykonanie zadania narzędzia. Będę mógł dodać kilka innych funkcji w przyszłości.

Powiązane problemy