7

Aby ułatwić testowanie wersji, szukamy systemu do automatycznego budowania i testowania naszych projektów na różnych architekturach. Nasze ograniczenia są:Mechanizm automatycznego budowania i testowania języków dla wielu projektów

  1. Kod budować jest napisane w kilku językach, w tym Python, Java i C
  2. mamy kilka różnych architektur wdrażania.
  3. Mamy wiele projektów, które chcielibyśmy niezależnie zbudować i przetestować.
  4. Nasz system kontroli źródła to Subversion, a system powinien się z tym zintegrować.
  5. Rozwiązanie powinno idealnie być open source.

Mamy spojrzał na:

  • Artifactory + Continuum: Nice w pewnym sensie, ale jest mocno Java-centric, o ograniczonej lub nieistniejącej wsparcia Python.

  • Buildbot: Daje nam to prawie całą funkcjonalność, jakiej potrzebujemy, z tym, że nie obsługuje wielu projektów, co jest dla nas przełomowe.

Co byś polecił? Czego używasz?

+0

Czy Perl spełnia Twoją definicję "serwera tworzenia i testowania"? – Jared

+0

Perl? Nie jestem pewien, czy rozumiem. Czy możesz rozwinąć? –

+0

To była sugestia, że ​​być może trzeba będzie przetoczyć własny system budowania zawinięty w słabą próbę humoru. – Jared

Odpowiedz

4

Czy obejrzałeś Hudson? Używałem go w projektach .Net z dużym sukcesem, mimo że jest to w pewnym stopniu narzędzie zorientowane na Javę. Obsługuje subversion i posiada aktywną i różnorodną społeczność wtyczek, która umożliwia pracę z wieloma różnymi językami. Jest open source i działa na wielu platformach. Stwierdziłem, że jest stosunkowo łatwy w konfiguracji i zarządzaniu.

+0

Prototypowałem to i wygląda na to, że może pasować do rachunku. Przyjmuję tę odpowiedź, ponieważ nie ma wielu innych dobrych alternatyw ... –

1

Po odejściu od buildbota korzystam z tempomatu i jestem z niego zadowolony w pewnym stopniu. Moje obecne projekty polegają na budowaniu C++ & ruby ​​(z niektórymi rozszerzeniami c) na wiele architektur, a jedynym problemem jest to, że większość funkcji wymaga ant. A obecnie pojedyncza instancja cc buduje około 40 różnych projektów. Fazy budowania składają się z przeprowadzania testów, testów funkcjonalnych, uzyskiwania zasięgu kodu i tworzenia raportów, aktualizowania bazy pakietów, integracji irc, tworzenia oprogramowania packaqge i repozytorium update (debian)

Jedynym problemem jest to, że większość ciekawszych funkcji wymaga, aby (Atleast, gdy wewnątrz budowania pętli cc) budować się z mrówką.

Oceniłem również hudson, wydaje się nieco bardziej elastyczny niż cruisecontrol, ale osobiście nie podoba mi się jego interfejs konfiguracyjny.

+0

PS. Powodem odejścia od buildbota było również to, aby konfiguracja była "tak elastyczna", że początkowa konfiguracja zajmuje całkiem sporo czasu. Do tej pory nadal uważam, że jest to najlepszy wybór dla większych projektów. – rasjani

+0

Rasjani, byłoby całkiem łatwo przenieść większość z tych bardziej zaawansowanych funkcji CC do innych budowniczych. Opublikuj o tym na liście dyskusyjnej użytkownika cruisecontrol, a może uda nam się uzyskać te dodane dla ciebie. –

+0

Jeffrey: Jestem aktywny na liście mailingowej i przesłałem moją część sugestii. Ale ogólna wibracja polega na tym, że ponieważ używam "nieortodoksyjnej" konfiguracji, np. Nie używam mrówki, większość moich rzeczy została po prostu zignorowana. Ale powiedziawszy, jestem zadowolony z oprogramowania, mogę załatać moją konfigurację do tego stopnia, że ​​robi to, czego potrzebuję, więc jestem nadal szczęśliwym kamperem =) – rasjani

1

Jestem programistą na CruiseControl i pracuję dla Urbancode, który tworzy AnthillPro, więc mogę mówić do mocnych stron. Jestem również jednym z organizatorów CITCON, więc jestem prawie obeznany z prawie all the offerings in the space.

CruiseControl lub Hudson to całkiem niezłe narzędzia CI o otwartym kodzie źródłowym. Uważam, że CC jest bardzo łatwy w dostosowywaniu i rozszerzaniu oraz że istnieje wiele wtyczek, które zostały dodane w ciągu 8-letniego okresu użytkowania. Hudson jest nowszy i łatwiejszy do rozpoczęcia dla większości ludzi; nie jest łatwo uzyskać pierwszy projekt uruchomiony przy użyciu konfiguracji GUI, podczas gdy CC wymaga fałdowania w plikach XML.Hudson ma również aktywną społeczność wtyczek i szybko dodaje nowe możliwości.

Jednak w zależności od złożoności i wymagań twoich projektów może się okazać, że lepsze będzie komercyjne narzędzie, takie jak AnthillPro. Przyczyny przejścia z CC lub Hudson na AHP różnią się w zależności od przedsiębiorstwa, ale niektóre typowe odpowiedzi obejmują możliwość konfiguracji samoobsługowych wdrożeń z kontrolą dostępu według środowiska, chęć łączenia wielu kompilacji/przepływów pracy, wbudowane zarządzanie zależnościami, repozytorium artefaktów lub zdolność do budowania w ciągu całego cyklu życia: pull together data from a bunch of different tools &.

Nie każdy potrzebuje tych możliwości, ale ludzie, którzy uważają, że aktualizacja jest warta swojej ceny.

0

Dlaczego nie spojrzeć na CI Factory.

+0

spójrz na ten link, to pokazuje dziwną orientalną stronę. – BlaShadow

+0

@BlaShadow Dzięki, zaktualizowałem link. –

10

Spójrz na TeamCity. Działa jak urok dla nas.

+2

Musisz zapłacić, jeśli masz więcej niż 20 miejsc pracy i więcej niż 20 pracowników, którzy używają tego narzędzia. Jenkins jest darmowy i nie ma żadnych ograniczeń. – Gynnad

+5

Jeśli twój czas ma wartość, to Jenkins z pewnością ma sporo ograniczeń. – Garen

Powiązane problemy