7

Mój zespół ma na celu zminimalizowanie czasu, przez który nasz build jest zepsuty.Tempo czasu Cruise Control .NET w stanie nieudanym

Używamy CruiseControl.NET do ciągłej integracji. Chciałbym się dowiedzieć, jak najlepiej podejść do odpowiedzi na następujące pytanie:

"W ostatnim {czasie}, ile czasu {nazwa-projektu} spędził w zepsutym stanie?"

Na przykład: "W ciągu ostatniego miesiąca, ile czasu nasz projekt spędził w zepsutym stanie?"

Czy są jakieś zaawansowane funkcje CruiseControl.NET, które ułatwiają udostępnianie tych informacji w jakimś raporcie lub w dowolnym miejscu pulpitu?

Alternatywnie, w jaki sposób podejdziesz do analizy plików artefaktów XML w celu zebrania tych informacji?

+0

"Mój zespół ma na celu zminimalizowanie czasu, przez który nasza kompilacja jest zepsuta." Dlaczego tego potrzebujesz? Opisz, kiedy możesz wykorzystać te informacje. Jeśli masz 10h w stanie zepsutym lub 3 dni, co ci daje? – Restuta

+0

Restuta: Dla naszego zespołu, zepsuta kompilacja reprezentuje błąd. Mamy zestaw automatycznych testów na różnych poziomach naszego systemu. Kiedy jeden z tych testów nie powiedzie się z powodu zmiany kodu, oznacza to, że dodaliśmy błąd. Błędy nie są tolerowane i chcielibyśmy je naprawić, traktując je priorytetowo. Posiadanie statystyk jest tylko środkiem do ilościowego określenia naszej skuteczności, jeśli chodzi o osiągnięcie naszego celu, jakim jest szybkie uczestnictwo w naprawianiu błędów. Używamy również CruiseControl.NET do wdrażania naszej strony dev, tak długo, jak kompilacja jest zepsuta, nowe zmiany kodu nie będą odzwierciedlone na naszej stronie dev. Chcielibyśmy, aby nasza strona deweloperska była aktualna. – bhazzard

+0

Liczba przerw w budowie jest IMHO o wiele lepsza niż w tym stanie. – skolima

Odpowiedz

1

Po krótkim zapoznaniu się z dokumentami CC, wyobrażam sobie, że jeśli tworzysz swój własny panel kontrolny Cruise Control, możesz spożywać kanał RSS z wynikami kompilacji, analizować we wszystkich datach i stanach sukcesu/porażek aż do próg, a następnie podsumuj sumy.

Jak do wyświetlania go w desce rozdzielczej, myślę, Tempomat posiada architekturę wtyczek, które mogłyby pomóc http://cruisecontrol.sourceforge.net/main/plugins.html

+0

Mam na myśli konkretnie CruiseControl.NET. Czy wiesz, czy którakolwiek z tej dokumentacji od CruiseControl dotyczy również CruiseControl.NET? – bhazzard

2

widzę co najmniej dwa sposoby podejścia do tego:

  1. Piszesz zewnętrznego narzędzia który analizuje pliki dziennika XML CC.NET dla projektu (domyślnie przechowywane w podkatalogu buildlogs), oblicza statystyki i zapisuje raport HTML. Jest to prawdopodobnie łatwiejsze, ale nie będzie bezpośrednio zintegrowane z CC.NET.
  2. W tym celu należy napisać wtyczkę CC.NET. W tym przypadku musisz trochę zbadać. Domyślam się, że punktem wyjścia byłoby przyjrzenie się kodowi źródłowemu istniejącej wtyczki.

Oto kilka linków na temat wtyczek CCNET:

0

Więc moje ostateczne rozwiązanie nie było idealne, ale to było łatwe do zrobienia i to działa:

Miałem wiadomości e-mailowe budowania CC.NET na adres e-mail (nazwiemy go [email protected]_statistics.com). Następnie używam skryptu ruby, aby uzyskać e-maile za pośrednictwem IMAP i przetworzyć je w celu ustalenia czasu awarii kompilacji.

Nie poszedłem na drogę bezpośredniego parsowania xml, ponieważ musiałbym przeanalizować każdy plik xml w odpowiednim czasie, aby zbudować oś czasu, a następnie przejść na osi czasu, aby wykonać obliczenia. Po prostu wydawało się to zbyt skomplikowane, aby uzyskać prostą statystykę taką jak ta.

+0

Aktualizacja: to okazało się straszliwym, nieopłacalnym rozwiązaniem. : P – bhazzard

0

Podoba mi się cc.net, ale w tym przypadku TeamCity robi to za Ciebie. Ma też wiele innych wspaniałych statystyk. Jest bezpłatny dla mniej niż 20 projektów.

+0

Team City wygląda całkiem schludnie. Z ciekawości, jak odpowiedzieć na to pytanie za pomocą TeamCity? – bhazzard

+0

@bhazzard - Team City wyświetla statystyki dla każdej konfiguracji kompilacji, która pokazuje czas naprawy kompilacji w ciągu dnia, tygodnia, miesiąca, kwartału, roku lub całego czasu. ich dokumenty pokazują przykład strony statystyk http://confluence.jetbrains.net/display/TCD5/Statistics. Ma również spokojny interfejs API, którego możesz użyć do odpytania go. Nie mogę powiedzieć, że wypróbowałem już metodę zapytania. Po prostu patrzę na wykres. –

Powiązane problemy