Ciągła integracja systemów dla Pythona Codebase

głosy
48

Zaczynam pracę nad projektem hobby z Pythona kodzie i chciałbym założyć jakąś formę ciągłej integracji (czyli działa baterię testowych przypadkach za każdym razem zameldowania jest wykonany i wysyłanie nag e-maile do odpowiedzialności osoby kiedy testy fail) podobne do Corector lub TeamCity .

Zdaję sobie sprawę, co mogłem zrobić to z hakami w większości VCSes , ale to wymaga, aby testy wykonywane na tej samej maszynie co serwer kontroli wersji, która nie jest tak elegancki jak chciałbym. Czy ktoś ma jakieś sugestie co do małego, przyjaznego dla użytkownika, open-source systemu ciągłej integracji odpowiednich dla Pythona kodzie?

Utwórz 02/08/2008 o 19:43
źródło użytkownik
W innych językach...                            


7 odpowiedzi

głosy
26

Jedną z możliwości jest Hudson. Jest napisany w Javie, ale nie ma integracji z projektów Pythona:

Hudson obejmuje Python

Nigdy nie próbowałem to sam, jednak.

( Aktualizacja , wrzesień 2011: Po sporze znaków towarowych Hudson została zmieniona na Jenkins ).

Odpowiedział 02/08/2008 o 19:56
źródło użytkownik

głosy
25

Prowadzimy buildbota - Trac w pracy. Nie używałem go zbyt dużo, ponieważ mój codebase nie jest częścią cyklu wydawniczego jeszcze. Ale prowadzimy testów na różnych środowiskach (OSX / Linux / Win) i wysyła e-maili - i to jest napisane w Pythonie.

Odpowiedział 02/08/2008 o 20:06
źródło użytkownik

głosy
17

Drugi buildbota - integracja Trac. Możesz znaleźć więcej informacji na temat integracji na stronie buildbota . Na mojej poprzedniej pracy, pisaliśmy i używane wtyczki wspominają (tracbb). Co plugin robi jest przepisywanie wszystkich adresów URL buildbota więc można użyć buildbota od wewnątrz Trac. ( Http://example.com/tracbb ).

Naprawdę miłą rzeczą buildbota jest to, że konfiguracja jest napisany w Pythonie. Można zintegrować własny kod Pythona bezpośrednio do konfiguracji. Jest również bardzo łatwy do pisania własnych BuildSteps do wykonania określonych zadań.

Użyliśmy BuildSteps uzyskać źródło z SVN, ciągnąć zależności, publikowania wyników badań do WebDAV, etcetera.

Pisałem interfejs X10 więc możemy wysyłać sygnały z wynikami kompilacji. Kiedy budowa nie powiodła się, że włączone światła czerwonego lawy. Gdy budowa udało, zielona lawa lampa włączona. Dobre czasy :-)

Odpowiedział 03/08/2008 o 13:09
źródło użytkownik

głosy
17

Używamy zarówno buildbota and Hudson rozwoju Jython. Oba są przydatne, ale mają różne zalety i wady.

konfiguracja buildbota jest czysty Python i dość proste, gdy pojawi się zawiesić go (spójrz na epydoc generowane docs API dla najbardziej aktualnej informacji). Buildbota ułatwia zdefiniowanie zadań zakaz testowania i dystrybucji testerów. Jednak, tak naprawdę nie ma pojęcia indywidualnych testów, tylko tekstowych, HTML i wyjścia podsumowania, więc jeśli chcesz mieć wielopoziomowego przeglądania wyjścia testowego i tak dalej musisz ją zbudować sam, lub po prostu użyć Hudson.

Hudson ma wspaniałe wsparcie dla wiercenia w dół z ogólnymi wynikami język zestawów testów i indywidualnych testów; to też jest dobre dla porównania wyjście testowe między buduje, ale rozproszonych (master / slave) rzeczy jest stosunkowo bardziej skomplikowana, ponieważ trzeba środowisko Java na niewolników też; również, Hudson jest mniej tolerancyjne kruchych powiązań sieciowych między panem i niewolników.

Tak więc, aby uzyskać korzyści z obu narzędzi, możemy uruchomić jedno wystąpienie Hudson, który łapie typowe awarie testowych, a następnie robimy regresji multi-platformowa z buildbota.

Oto nasze przypadki:

Odpowiedział 15/09/2008 o 01:11
źródło użytkownik

głosy
7

Używamy Bitten wich jest zintegrowany z Trac. I to pyton oparty.

Odpowiedział 16/09/2008 o 17:51
źródło użytkownik

głosy
6

TeamCity ma pewne Pythona integracji .

Ale TeamCity jest:

  • Nie open-source
  • nie jest mały, ale funkcjonalny
  • jest dostępny bezpłatnie dla małych średnich zespołów.
Odpowiedział 22/09/2008 o 22:18
źródło użytkownik

głosy
5

Mam bardzo dobre doświadczenia z Travis-ci dla mniejszych baz kodu. Główne zalety to:

  • Konfiguracja odbywa się w czasie krótszym niż pół ekranu pliku konfiguracyjnym
  • można zrobić własną instalację lub po prostu korzystać z bezpłatnej wersji gospodarzem
  • półautomatyczna konfiguracja repozytoriów GitHub
  • nie potrzebne konto na stronie internetowej; Zaloguj się poprzez github

Pewne ograniczenia:

  • Python nie jest obsługiwany jako pierwszy język klasy (od chwili pisania, ale można użyć pip i apt-get zainstalować zależności Pythona; patrz samouczek )

  • Kod musi być utrzymywana na github (przynajmniej przy korzystaniu z oficjalnej wersji)

Odpowiedział 02/02/2012 o 22:42
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more