Jeszcze kilka lat temu programiści faktycznie tworzyli kompilacje, które trafiały do klientów. Była to oczywiście katastrofa z powodów zbyt licznych, by ją wymienić.Jakie narzędzia zalecają automatyczne tworzenie aplikacji?
Następnie, gdy zaczęliśmy uczyć się błędów naszych sposobów, szukaliśmy sposobu automatycznego zbudowania całej aplikacji na dedykowanej maszynie do budowania. Kultura w tamtym czasie była bardzo niechętna przynoszeniu narzędzi zewnętrznych, więc zbudowaliśmy własny system autobuild, pisząc aplikację VB.
To działało przez jakiś czas, dopóki struktura projektu nie zaczęła się zmieniać, dodano nowe projekty i musieliśmy zbudować aplikację na różne sposoby. Wtedy pojawiły się słabości naszego ręcznie zwiniętego autobuildera i, z biegiem czasu, coraz bardziej uciążliwe. Choroba ta posunęła się do punktu, w którym QA (która jest właścicielem naszego procesu budowania) nie może nawet utrzymać autobuildera, ponieważ wymaga coraz więcej umiejętności programistycznych. Za każdym razem, gdy dodajemy projekt lub zmieniamy coś w istniejącym projekcie, zużywa on więcej czasu dla programistów tylko po to, by działał. Były dni, kiedy nie byliśmy w stanie wyprodukować kompilacji, ponieważ system był zepsuty.
Jestem teraz w sytuacji, w której mogę zmienić ten proces, i zamierzam zepsuć cały system i umieścić coś innego w jego miejscu. Moje cele to:
- Posiadam system autobuildów, który może działać bez interwencji człowieka w określonym czasie każdego dnia. Powinien być w stanie zebrać cały kod źródłowy, skompilować wszystkie aplikacje, stworzyć konfiguracje, umieścić gotowe produkty w udziale sieciowym i ewentualnie uruchomić automatyczny system testowy do uruchomienia (używamy QTP).
- System autobuild powinien być wystarczająco elastyczny, aby łatwo przystosować się do zmian w projekcie bez konieczności poważnego remontu.
- Powinien być na tyle prosty, aby kontrola jakości mogła należeć do systemu i nie wymagać od deweloperów wprowadzania zmian w sposobie tworzenia kompilacji.
Jakie są twoje wrażenia? Czy możesz polecić system autobuild? Czy powinienem mieć inne cele?
+1 dla Cruise Control, I moonlight jako inżynier budujący moją firmę i używam go do nocnych buildów (około 300 telefonów na wiele produktów), a także do budowania wersji. – omermuhammed
Mówiąc ikonicznie, przeszedłem teraz na Hudsona :) IMO, jest dużo bardziej dopracowane niż CC i łatwiejsze do skonfigurowania różnych typów projektów. – workmad3