Kilka razy w mojej karierze pracowałem w grupie oprogramowania, który ustalił, że
a) Potrzebowaliśmy systemu build/test
b) powinniśmy napisać własną
c) My programista może spędzić tydzień, zrobić to i nie powinien tego ponownie dotykać.Język Agnostic Budowanie systemu zarządzania
Za każdym razem powoduje to system, który wydaje się działać tylko dla osoby, która go napisała i wymaga stałej uwagi . Spędziłem czas przy kilku okazjach, szukając narzędzia, które mógłbym wykorzystać, by służyło naszym potrzebom, ale pojawiało się z pustymi rękami. Ogólnie rzecz biorąc, narzędzia takie jak ten serwer są bardzo wąskim rynkiem. Znowu potrzebuję czegoś takiego. Czy coś tam jest, czy też piszemy to jeszcze raz?
Oto moje wymagania w kolejności priorytetów (ostatni niektóre są po prostu miło mieć):
Możliwość obsługi wielu kompilacji projektu. Mamy kilka komponentów, które zapewniają rzeczy, których używają inne składniki i używają rzeczy z innych komponentów. Programista powinien mieć możliwość sprawdzenia 1 komponentu i wprowadzania zmian bez konieczności budowania świata. Zależności poza projektem powinny być automatycznie pobierane. Zatem pewien sposób, aby wepchnąć i wyciągnąć zbudowane obiekty na serwer, ma kluczowe znaczenie. Innym aspektem tego jest możliwość ściągnięcia wszystkich zależności do katalogu lokalnego w celu rozwoju na drodze.
Nie przejmuj się tym, jak dokładnie wszystko zostanie zbudowane. Może to zabrzmieć dziwnie, ale nie chcę, aby system kompilacji martwił się o kompilowanie mojego kodu. Istnieją już świetne narzędzia, które robią to dla każdego języka - Ant, CMake itp. Chcę tylko powiedzieć, jak je wywoływać, aby tworzyć rzeczy i na jakie wyniki powinien się zwrócić. W ten sposób Projekt A może być w Javie, Projekt B może być w C++, masz pomysł.
mieć jakiś sposób, aby uruchomić testy na wyjściu
pokazują aktualne wyniki build/badanie na stronie internetowej
Wysłać wyniki
Integracja z RCS (używamy SVN)
myślę, że będą musieli wyjaśnić, dlaczego takie rzeczy jak skrypty i/lub Ant, msbuild itp spadną. Wydaje się również wskazywać, że chcesz przechowywać pliki binarne w kontroli wersji lub przynajmniej na serwerze kompilacji. Dlaczego po prostu nie udostępniać wyników maszyny budującej na stronie ftp - z etykietą/wersją. – Tim