To jest trochę ... próżne pytanie, ale wyjście BuildBota nie jest szczególnie przyjemne.
Na przykład w porównaniu z ...
.. a inne, BuildBot wygląda raczej ... archaicznie
Obecnie gram z Hudsonem, ale jest on bardzo skoncentrowany na Javie (chociaż dzięki temu przewodnikowi łatwiej było skonfigurować niż BuildBot i wygenerowałem więcej informacji)
Zasadniczo: czy istnieją systemy ciągłej integracji skierowane do Pythona, które generują wiele błyszczących wykresów i tym podobnych?
Aktualizacja: Od tego czasu projekt Jenkins zastąpił Hudson jako społeczną wersję pakietu. Pierwotni autorzy również przenieśli się do tego projektu. Jenkins jest teraz standardowym pakietem w systemach Ubuntu / Debian, RedHat / Fedora / CentOS i innych. Następująca aktualizacja jest nadal zasadniczo poprawna. Punkt wyjścia do zrobienia tego z Jenkinsem jest inny.
Aktualizacja: po wypróbowaniu kilku alternatyw, myślę, że zostanę przy Hudsonie. Uczciwość była miła i prosta, ale dość ograniczona. Myślę, że Buildbot lepiej nadaje się do posiadania wielu niewolników kompilacji, niż wszystkiego, co działa na jednej maszynie, tak jak ja jej używałem .
Konfiguracja Hudsona dla projektu w Pythonie była całkiem prosta:
- Pobierz Hudson z http://hudson-ci.org/
- Uruchom to z
java -jar hudson.war
- Otwórz interfejs sieciowy pod domyślnym adresem
http://localhost:8080
- Przejdź do Manage Hudson, Plugins, kliknij „Update” lub podobną
- Zainstaluj wtyczkę Git (musiałem ustawić
git
ścieżkę w globalnych preferencjach Hudson) - Utwórz nowy projekt, wprowadź repozytorium, okresy odpytywania SCM i tak dalej
- Zainstaluj
nosetests
przez,easy_install
jeśli jeszcze nie jest - Na etapie kompilacji dodaj
nosetests --with-xunit --verbose
- Zaznacz opcję „Publikuj raport wyników testu JUnit” i ustaw „Pliki XML raportu testowego” na
**/nosetests.xml
To wszystko, czego potrzeba. Możesz ustawić powiadomienia e-mail, a wtyczki są warte obejrzenia. Kilka, których obecnie używam w projektach Pythona:
- Wtyczka SLOCCount do liczenia linii kodu (i tworzenia wykresów!) - musisz zainstalować sloccount osobno
- Naruszenia dotyczące analizowania danych wyjściowych PyLint (można ustawić progi ostrzegawcze, wykreślić liczbę naruszeń dla każdej kompilacji)
- Cobertura może przeanalizować wyjście Cover.py. Nosetest może uzyskać pokrycie podczas przeprowadzania testów, używając
nosetests --with-coverage
(to zapisuje dane wyjściowe**/coverage.xml
)