Pracowałem nad narzędziami Continuous Integration od czasu tego, który stworzył Cruise Control (wersja java). W pewnym momencie wypróbowałem prawie wszystkie z nich. Nigdy nie byłem szczęśliwszy niż z TeamCity. Jest bardzo prosty w konfiguracji i nadal zapewnia dużą moc. Strona ze statystykami kompilacji, która pokazuje czasy kompilacji, liczbę testów jednostkowych, współczynnik pomyślności itp., Jest bardzo ładna. Strona główna projektu TeamCity jest również bardzo cenna. W przypadku prostych projektów .NET wystarczy powiedzieć TeamCity, gdzie znajduje się rozwiązanie i jakie zestawy mają testy i to wszystko, czego potrzebuje (poza lokalizacją kontroli źródła). Użyliśmy również skomplikowanych skryptów MSBuild i zrobiliśmy tworzenie łańcuchów kompilacji. Przeszedłem również przez dwie aktualizacje TeamCity i były one bezbolesne.
CruiseControl.NET również działa dobrze. Konfiguracja jest trudniejsza, ale ma dłuższą historię, więc łatwo jest znaleźć rozwiązania w sieci. Ponieważ CruiseControl.NET jest oprogramowaniem typu open source, masz również możliwość dodawania lub zmiany tego, co chcesz. Korzystałem z CruiseControl.NET od jego wydania i napisałem część wczesnego kodu dla cc.tray (na szczęście przepisany przez kogoś, kto wiedział lepiej).
Rejs, z ThoughtWorks, również wygląda całkiem nieźle, ale nie widzę powodu, dla którego bym się zmienił. Gdybym zaczynał nowy projekt, mógłbym spróbować, ale TeamCity wykonał świetną robotę, upraszczając proste rzeczy, jednocześnie czyniąc złożonym dość bezbolesnym.
Edycja: Właśnie zaktualizowaliśmy TeamCity 5.0 kilka tygodni temu i była to kolejna bezbolesna aktualizacja. Pozwoliło nam to wykorzystać ulepszone możliwości pokrycia kodu i obsługę GIT. Używamy teraz również kompilacji osobistej i wstępnie przetestowanych funkcji zatwierdzania, które są dostępne od jakiegoś czasu. Pomyślałem, że powinienem zaktualizować odpowiedź, aby wskazać, że TeamCity ciągle się poprawia i nadal jest łatwy w użyciu.
Byłem / jestem wielkim fanem CC.NET. Obecnie mamy 5 projektów w CruiseControl i działa świetnie. Pisanie plików konfiguracyjnych ręką może być bolesne, ale jest w porządku.
Ale .
Po screencastie Kona: Continuous Integration and Better Unit Testing (pierwsza 1/3 o TeamCity) sprawdzę również TeamCity. Uwielbiam zintegrowany pulpit testowy i interfejs konfiguracyjny.
Myślę, że każdy powinien obejrzeć ten film przed wyborem CC.NET lub TeamCity.
ps: Mam nadzieję, że w sieci jest również wartościowy film CC.NET.
źródło
Zdecydowanie moim ulubionym serwerem CI jest Hudson. Łatwe w konfiguracji i utrzymaniu, wiele ładnych wykresów pokazujących trendy programistom i osobom niebędącym programistami oraz bezpłatne.
Obecnie używam TeamCity w projekcie i generalnie jestem z niego zadowolony, ale wiele z generowanych przez niego wykresów nie jest szczególnie przydatnych, a konfiguracja jest bardziej skomplikowana niż Hudson.
To powiedziawszy, TeamCity jest potężny, darmowy do wielu zastosowań i ma jedną zabójczą funkcję: Remote Run. Możesz "wstępnie zatwierdzić" swoje zgłoszenie bezpośrednio z IDEA lub Eclipse, uruchomić jedną lub więcej konfiguracji kompilacji na serwerze TeamCity i zatwierdzić zmiany tylko wtedy, gdy kompilacja się powiedzie (np. Kompilacja i wszystkie testy zakończą się pomyślnie).
Biorąc pod uwagę, że możesz uruchomić i uruchomić zarówno TeamCity, jak i Hudson w ciągu kilku godzin, warto chwycić oba i uruchomić je obok siebie, wraz z innymi (takimi jak CruiseControl), o których możesz pomyśleć. Jeśli nie możesz szybko znieść serwera CI, aby przeprowadzić bezpośrednie porównanie, to przynajmniej masz punkt danych ułatwiający instalację i / lub konfigurację.
źródło
Używałem ich z powodzeniem w różnych projektach. Z punktu widzenia konfiguracji i administracji Team City jest znacznie łatwiejszy w obsłudze. Nie musisz siekać z plikami .config, tak jak robisz to z CC, a konfiguracja jest prosta. Ponieważ nie masz wielu projektów, polecałbym Team City zamiast CC, dopóki nie dojdziesz do punktu, w którym Team City kosztuje $.
źródło
Używałem zarówno CC.net, jak i TeamCity. Mam za zadanie skonfigurować i zainstalować TeamCity dla mojej organizacji (5 programistów). Nasza organizacja korzysta z nietypowych praktyk i narzędzi (przynajmniej w przypadku organizacji naszej wielkości), takich jak Perforce do kontroli źródła i wielu agentów kompilacji działających w heterogenicznych systemach operacyjnych, co powodowało pewne problemy z początkową konfiguracją. Jednak wsparcie za pośrednictwem poczty elektronicznej było absolutnie na najwyższym poziomie, jeśli chodzi o konfigurację wszystkiego. Odpowiedzi na moje głupie pytania otrzymałem dosłownie w kilka minut.
Interfejs jest intuicyjny i responsywny, a także pełen funkcji. Produkt wydaje się bardzo drogi. Konfiguracja jest łatwa, a interfejs sieciowy jest wystarczająco inteligentny, aby aktualizować się bez ponownego uruchamiania agenta lub usług serwera, a nawet odświeżania strony.
Wydaje mi się, że używamy prawie każdej zaawansowanej funkcji produktu i jak dotąd nie znaleźliśmy żadnych błędów. Integracja Ndepend, zagnieżdżone skrypty NAnt, etykietowanie wersji Perforce, nazwij to, robimy to.
Bardzo polecam TeamCity każdemu, kto szuka serwera ciągłej integracji lub dowolnego serwera kompilacji.
źródło
Bez chęci rzucania w Ciebie alternatywnymi narzędziami :-)
Hudson to świetna alternatywa open source, używałem CC i CC.net i przyznaję, że uważam to za fantastyczne narzędzia. Zastanawiam się nad przejściem na Hudson, ponieważ wydaje mi się, że jest dużo łatwiejszy w konfiguracji i utrzymaniu.
https://hudson.dev.java.net/
źródło
Upewnij się, że system, który zdecydujesz się skalować do liczby projektów, które będziesz potrzebować do obsługi ...
Używam CruiseControl.Net, ale nie polecałbym go do tworzenia wielu projektów ... Mam (być może trochę dziwne) ustawienie, w którym mam wiele bibliotek statycznych C ++, które komponuję w aplikacje. Każda biblioteka zależy od innych bibliotek, a aplikacje pobierają zestaw bibliotek i kompilacji. Każda biblioteka ma zestaw testów. Każda aplikacja ma zestaw testów. Tworzę dla 5 kompilatorów i odmian platform (Windows).
Pierwszą rzeczą, jaką odkryłem, było to, że wyzwalacze projektu CC.Net nie są tak naprawdę tym, czego potrzebujesz, a multi-wyzwalacz nie działa dobrze z wyzwalaczami projektu. Sposób działania wyzwalaczy projektu (wykorzystują zdalne połączenie do połączenia z serwerem, na którym przechowywany jest projekt (nawet jeśli jest to projekt zarządzany przez to samo wystąpienie CC.Net), a następnie ściągają wszystkie projekty z tego serwera i przeszukują listę sekwencyjnie szukając projektu, który Cię interesuje ...) oznacza, że nie są one dobrze skalowane. Kiedy przekroczysz pewną liczbę projektów, przekonasz się, że CC.Net zajmuje większość procesora dla twojej maszyny budującej.
Oczywiście jest to oprogramowanie typu open source, więc możesz to naprawić ... I jestem pewien, że jest odpowiedni dla niewielkiej liczby niezależnych projektów.
Aby uzyskać więcej informacji na temat problemów, które miałem, i kilka poprawek dla CC.Net, zobacz tutaj http://www.lenholgate.com/archives/cat_ccnet.html
źródło
Niedawno skonfigurowałem cc .net. To świetna aplikacja, ale wymaga trochę cierpliwości. Będziesz dużo edytować pliki konfiguracyjne w notatniku :)
Jest już od jakiegoś czasu, więc jest dobrze obsługiwany i zwykle można znaleźć kogoś, kto zrobił już to, co chcesz. Interfejs sieciowy to również .net, co było dla nas plusem, ponieważ jesteśmy sklepem Microsoft.
Nie korzystałem z TeamCity, ale słyszałem o nim sporo rekomendacji i wygląda ładnie.
źródło
Miałem doświadczenie w konfigurowaniu i uruchamianiu CruiseControl (wersja Java) na Linuksie w mojej poprzedniej firmie. Jak sugeruje większość ludzi, konfiguracja nie jest najprostsza. Musisz zrozumieć jego strukturę, aby wymyślić działającą / zarządzalną konfigurację. Jednak kiedy już minąłeś ten garb, czuję, że CruiseControl jest dość elastyczny, aby pozwolić ci robić różne rzeczy, pasujące do różnych scenariuszy.
Poza tym dokumentacja CruiseControl, jej strona wiki również zawiera przydatne informacje.
Nie mam bezpośredniego doświadczenia z TeamCity. Chociaż funkcja zatwierdzania przed testem wygląda wystarczająco interesująco.
Innym narzędziem CC, które możesz nadać mu wygląd, jest Bamboo firmy Atlassian. Jest dużo łatwiejszy w konfiguracji, a interfejs jest ładniejszy. Chociaż nie jest tak elastyczny, jak to, co oferuje CruiseControl.
źródło
Trzecia opcja, którą warto rozważyć: Rejs Myśli. Jest zbudowany na CruiseControl, ale oferuje dużo więcej funkcji, łatwiejszą konfigurację itp. Nie jest darmowy (lub open source).
http://studios.hardtworks.com/cruise-continuous-integration
źródło
Używam Teamcity od 1,5 roku i mam wspaniałe doświadczenie. Zintegrowałem wiele projektów .Net i Java oraz korzystałem z narzędzi takich jak MSBuild, Maven itp. Uważam, że Teamcity jest całkiem proste w konfiguracji i pracy. Udało mi się uruchomić CI również w niektórych projektach sql, co było trochę koszmarem, który mógłby być gorszy w przypadku innych narzędzi CI.
Niedawno zaktualizowany do Teamcity 8.0.6, który był bezbolesny. Teamcity zapewnia również REST API, które jest bardzo przydatne w niektórych scenariuszach. Jeśli używasz PowerShell do automatyzacji kompilacji, wiele skryptów integracji Psake / Teamcity jest dostępnych na GitHub
źródło