Szukam porównania różnych serwerów ciągłej integracji (CI) (szczególnie koncentrując się na .NET) i nie mogłem znaleźć żadnego.
Dlatego chciałbym wiedzieć, co myślisz o różnych dostępnych rozwiązaniach, jakie są zalety i wady, jakie są wymagania dotyczące hostingu i dlaczego CI Server XY jest wybranym przez Ciebie serwerem.
Interesują mnie Wasze przemyślenia (zachęcam do komentowania innych na:
- Hudson
- Tempomat
- CruiseControl.NET
- Teamcity
- CIFactory (używa CruiseControl.NET)
Użyteczne miejsca to:
- Konfiguracja (łatwa, elastyczna)
- Integracja z SCM (szczególnie DSVC, np. Git lub hg)
- Integracja z systemami kompilacji (MSBuild, NAnt, Rake)
- Integracja z ramami testowymi
- Integracja z Source Anaylsis (Simian, NDepend, FxCop, NCover itp.)
- Interfejs internetowy / pulpity nawigacyjne
- Wymagania dotyczące infrastruktury
.net
comparison
continuous-integration
Peter Mortensen
źródło
źródło
Odpowiedzi:
Żadne takie pytanie nie jest kompletne bez łącza do dużej macierzy funkcji CI (archiwum sieci Web), która zawiera listę prawie wszystkich dostępnych opcji CI.
Ale myślę, że ważne jest, aby spojrzeć w przyszłość, na zakres tego, co chcesz uwzględnić w swoim systemie CI. Czy to będą tylko kompilacje, czy też zamierzasz wprowadzić inne elementy, takie jak analiza statyczna, zależności między projektami, wdrożenia, testy funkcjonalne itp. Aby pomóc w tym planowaniu, stworzyłem ten wykres na elementach Enterprise CI (PDF ; rejestracja nie jest wymagana). Proszę, nie pozwól, aby „słowo E” Cię zniechęciło; Mam na myśli tylko rzeczy wykraczające poza podstawową kompilację CI z szybkim sprzężeniem zwrotnym. :)
Nie jest specyficzna dla narzędzia, ale zawiera listę różnych praktyk, które możesz rozważyć na etapie planowania / oceny.
źródło
Nic pomocnego w:
EDYCJA : Na co zwrócił uwagę Jonik w komentarzu, przeoczyłem. Jaka jest różnica między Hudsonem a CruiseControl dla projektów Java? oraz jak i dlaczego mam skonfigurować maszynę kompilacji C #? . Znajdziesz bardzo wnikliwe odpowiedzi. Innymi słowy, myślę, że wszystko, czego szukasz, jest już w przepełnieniu stosu.
źródło
TeamCity ma wspaniałą funkcję umożliwiającą deweloperowi wykonanie osobistej kompilacji przed zatwierdzeniem. Bardzo przydatne!
CruiseControl.NET jest dziadkiem tej grupy i dlatego jest nieco przestarzały wizualnie itp. Ponieważ istnieje już od jakiegoś czasu, Google wie, jak rozwiązać wiele problemów, z którymi się spotkasz.
Z tych powodów (między innymi) korzystam z CruiseControl.NET w pracy i TeamCity w domu iw moim życiu open source :)
źródło
Jestem użytkownikiem CruiseControl.NET przez cały czas. Moje zespoły używają go w pracy, a ja używam go w domu do osobistych projektów.
W szczególności CruiseControl.NET pozwala mi przejść przez cały proces CI: kompilacje, aktualizację wersji, testy jednostkowe i integracyjne, archiwizację źródła lub kandydata do wydania, pokrycie kodu, a nawet wdrożenie do naszego systemu testowego w pracy. Jest wysoce konfigurowalny, dobrze współpracuje z MSBuild i NAnt, a nawet miał rozszerzalną architekturę wtyczek.
Robi wszystko, czego potrzebuję.
Największa wada: konfiguracja jest czasami uciążliwa i może zająć trochę czasu. Ale kiedy już jest gotowe, jest gotowe i, jak powiedział inny plakat, uwielbiam widzieć sygnał „udana kompilacja”, ponieważ wiem, że nie tylko sama kompilacja zadziałała, ale także że testy mojej jednostki i integracji przebiegły pomyślnie.
źródło
Team Foundation Build to opcja, która bardzo dobrze współdziała z Team Foundation Server. Jest bezpłatny, o ile masz licencję na TFS.
źródło
Używamy Hudson w pracy. Głównym powodem jest to, że jest bardzo łatwy w konfiguracji. Możesz bezpośrednio uruchomić wojnę (jest to wykonywalny plik jar) lub wdrożyć ją w dowolnym kontenerze serwletów. I jesteś gotowy, aby zacząć. Ponadto Hudson obsługuje wiele narzędzi i jest rozszerzalny poprzez system wtyczek.
źródło
Przeszliśmy z CruiseControl.NET na TeamCity przede wszystkim ze względu na łatwość konfiguracji. TeamCity ma również więcej funkcji, ale głównym powodem było to, że ładny interfejs WWW jest prostszy w użyciu niż pliki konfiguracyjne XML.
EDYCJA: Większość zadań, które TeamCity wykona po wyjęciu z pudełka; w razie potrzeby używamy NAnt.
źródło
CruiseControl.NET - konfiguracja może być trochę uciążliwa (podobnie jak większość systemów CI), ale warto wytrwać. Obecnie skonfigurowałem go do uruchamiania testów jednostkowych po zakończeniu kompilacji i do tworzenia instalatorów Wix na żądanie. Jak powiedział Dan, wygląda na nieco przestarzały, ale to nie ma znaczenia, ponieważ dostarcza wielu łatwych do odczytania informacji.
Jedno - upewnij się, że wszyscy twoi programiści mają zainstalowany, uruchomiony CC Tray i wskazujący na swoje kompilacje. To wspaniałe uczucie widzieć na pasku powiadomień informację „Kolejna udana kompilacja”.
źródło
Używamy ccnet w pracy, co jest w porządku dla większości naszych potrzeb (mamy około 50 automatycznych kompilacji), ale potrzebuje jednej osoby do poprawiania i naprawiania w pełnym wymiarze czasu.
Jeśli zaczynasz od zera, spójrz na Bamboo. Przyjrzeliśmy się temu i wygląda naprawdę obiecująco, ale nie w pełni odpowiada naszym potrzebom i zainwestowaliśmy zbyt dużo czasu w ccnet, aby teraz przejść na Bamboo.
Pozdrowienia,
Sebastiaan
źródło
Odziedziczyłem serwer Luntbuild. Nie jest to dobra opcja dla projektu .NET. Jeśli zauważysz, że ciągle wracasz do używania serwera kompilacji do uruchamiania ogólnych zadań wiersza poleceń, coś jest nie tak. Dobry serwer kompilacji dobrze rozumiał wyniki testów jednostkowych i zadania msbuild jako coś więcej niż nieprzejrzyste polecenia do uruchomienia, gdy zmieni się system kontroli źródła.
Podoba mi się migracja do Team City.
źródło
Jestem całkiem nowy na scenie CI i koncentruję swoje wysiłki na CruiseControl.NET, używając NAnt i Ivy do tworzenia moich projektów .NET.
Odkryłem, że CruiseControl.NET można bardzo łatwo dostosować do wielu innych narzędzi, takich jak NCover / NUnit / itp. Wszystkie podłączają się do tego i integrują wyniki w połączonym procesie kompilacji.
W najbliższej przyszłości przyjrzę się TeamCity dla własnego interesu, ale myślę, że CruiseControl wykonuje dobrą robotę, ale tylko tak dobrze, jak twoje skrypty kompilacji! Jeśli to są spodnie, możesz oczekiwać, że twoje kompilacje będą tak dobre.
Podsumowując, CruiseControl.NET to dobre rozwiązanie, ale jeszcze się nie dowiedziałem, jak dobra jest konkurencja w porównaniu.
źródło
Cieszymy się z Hudson . Nie mam do czego go porównywać, ale był prosty w konfiguracji i uruchomieniu. W tej chwili buduje tylko projekty Win32 C ++ i instalator, ale przenosimy na Linuksa i powinno to również działać.
Pobiera repozytoria Subversion bez żadnych problemów i wysyła alerty, itp. Jak dotąd nam się to podoba. Ponownie mamy ograniczone doświadczenie z porównaniami.
źródło
Pracuję z CruiseControl.NET, TFS 2012 i TeamCity 7.x od kilku lat i uważam, że TeamCity jest NAJLEPSZY ze względu na łatwość obsługi, wygodny i pouczający interfejs użytkownika oraz inne fajne funkcje, takie jak zależności kompilacji i wiele innych. Po prostu działa, uwielbiam to.
źródło