Porównanie serwerów CI? [Zamknięte]

87

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:

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
Peter Mortensen
źródło
31
27 osób uważa ten materiał za przydatny - ale jest zamknięty. SIGH
Ryan
CruiseControl.NET przeniósł się po zakończeniu współpracy z Thoughtworks. Nowy adres URL: cruisecontrolnet.org
Jowen
2
@Ryan jest wiele interesujących rzeczy na świecie, które nie pasują do SO.
Andy Wiesendanger
Dlaczego nie Azure DevOps ?
zwcloud

Odpowiedzi:

51

Ż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.

Jeffrey Fredrick
źródło
5
Jezu. Ta macierz cierpi na „DeathByOverload”. Podstawowy UX mówi, że duże siatki są bezużyteczne, chyba że istnieje filtrowanie. Aby dodać zniewagę do obrażeń, nie ma możliwości pobrania (csv), a przeceny nie można pobrać bezpośrednio. Nawet ten nie chciał skopiować do programu Excel ... Poddałem się.
2013
4
Link do macierzy funkcji nie działa :(
Marty
11
Zarchiwizowana strona: web.archive.org/web/20130730154141/http://…
Darren Griffith
1
Zarchiwizowana strona nie działa z powodu
pliku
14

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.

Pascal Thivent
źródło
1
Zgadzam się, że SO jest już dość pełen porównań serwerów CI. Nie wiem o Teamcity i CIFactory, ale jeśli chodzi o CC (.net) i Hudson, wybór jest obecnie dość jasny; oto moje spojrzenie na to: stackoverflow.com/questions/604385/… . (Nieważne, że w tym pytaniu kładzie się nacisk na Javę; Hudson jest również świetny dla .NET: stackoverflow.com/questions/616149/ ... )
Jonik
@Jonik Dzięki, bardzo dobre linki. Nie wiem, jak za nimi tęskniłem, obaj udzielają świetnych odpowiedzi i bardzo przydatnych informacji.
Pascal Thivent
„nie wiem o Teamcity i CIFactory” ... właśnie dlatego chcę pełnego porównania, które NIE dotyczy tylko x vs y. Dlatego jest to wiki społeczności. Zapraszam do wyciągnięcia wniosków z odnośników.
Johannes Rudolph
@Johannes, w porządku; Zgadzam się, że większość istniejących pytań ma bardziej ograniczony zakres niż ten. Ale może nie być tutaj wielu użytkowników z doświadczeniem ze wszystkimi Hudson, CC, Teamcity i CIFactory, którzy mogliby zapewnić dobre porównanie. Jeśli potrzebujesz serwera CI, moja rada (z własnego doświadczenia i np. Głosów na stackoverflow.com/questions/140453/… ) byłaby taka, aby najpierw wypróbować Hudson.
Jonik
7

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 :)

Daniel Elliott
źródło
Ach, czy CC.Net nie jest portem .net CruiseControl?
Mnementh
5

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.

scottmarlowe
źródło
2

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.

Matt
źródło
Myślałem, że nikt nie wspomniałby o TFS Build System, w pełni zintegrowanym z TFS i wspieranym przez Microsoft. Większość programistów .Net mogła już zainstalować z TFS.
Diego Mendes,
Kompilacje zespołu w TFS 2015/2017 są znacznie łatwiejsze w konfiguracji i obsłudze, a nawet można je monitorować w czasie rzeczywistym za pomocą monitora kompilacji CatLight
Thomas Bennet,
Prawdopodobnie jest powód, dla którego o tym nie wspomniano ... Moje 2 centy: właśnie rozpoczęliśmy pracę nad projektem, który go wykorzystuje, próbujemy ulepszyć naszą automatyzację i ustanowić potok dostaw ... ale od czasu do czasu CI "kończy się minuty ”i zgadnij, co… musisz zapłacić za kilka minut. To jest powód, dla którego jestem w tym wątku ...
Julia
1

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.

Mnementh
źródło
1

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.

TrueWill
źródło
1

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”.

Pete OHanlon
źródło
0

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

Sebastiaan M
źródło
0

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.

MatthewMartin
źródło
0

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.

Brett Rigby
źródło
0

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.

Peter Mortensen
źródło
0

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.

Alon Amsalem
źródło