Próbuję wprowadzić pewne pozytywne zmiany w mojej firmie, a jedną ze zmian jest wdrażanie ciągłej integracji. Zajmujemy się tworzeniem aplikacji mobilnych (iOS / Android), więc potrzebuję CI, który obsługuje oba typy projektów. Jak możesz powiedzieć, nie wiem dużo o CI, ale trochę googlowałem i myślę, że Jenkins i Hudson to dwa najpopularniejsze.
Mam dwuczęściowe pytania.
- Twoja myśl na temat Jenkinsa?
- Czy istnieje sposób, aby CI sprawdził, czy projekt jest
zgodny ze standardami kodowania (np. Luźne sprzężenie itp.)?
Odpowiedzi:
Po pierwsze, możesz chcieć spojrzeć na TeamCity jako kolejną opcję dla swojego serwera.
Moim zdaniem (choć mam nieco mniejsze doświadczenie z Jenkinsem niż z TeamCity) oba są doskonałymi i bardzo sprawnymi narzędziami - byłbym szczęśliwy w środowisku używającym jednego z nich.
Ok, aby przejść do sedna problemu, tj
Na najbardziej podstawowym poziomie wszystko, co robi serwer CI, to uruchomić skrypt, a następnie zinterpretować i przedstawić wyniki działania tego skryptu - więc jeśli możesz go skrypty, to prawdopodobnie serwer CI może go uruchomić, a jeśli odpowiednio sformatujesz dane wyjściowe, to serwer CI prawdopodobnie może interpretować i raportować o wyniku.
Oczywiście główne serwery kompilacji są już w stanie rozmawiać z wieloma popularnymi narzędziami / integrować się z nimi - tak naprawdę powstaje pytanie, jakiego narzędzia używasz do sprawdzania standardów kodowania i czy to integruje się z wybranym serwerem CI.
Tak, serwer CI wnosi znacznie więcej do automatyzacji niż bezmyślne uruchamianie skryptu - ale pod koniec dnia to właśnie robi.
Żeby było jasne - wiem, że serwer kompilacji nie tylko uruchamia skrypty, to automatyzacja procesu (a zwłaszcza integracja z (D) VCS), która dodaje wartości - ale odpowiadając na „czego potrzebuję serwer kompilacji ”pytanie odpowiedź brzmi„ serwer i skrypt ”wszystko inne płynie stamtąd.
źródło
Popieram rekomendację TeamCity - to świetny produkt. Nie mogę rozmawiać z Androidem, ponieważ nie mam czasu, ale udało mi się uruchomić projekty iOS w CI dzięki dwóm artykułom ( 1 2 ).
Najtrudniejsze części naprawdę miały związek z tym, aby komputer Mac uruchamiał automatyczną kompilację z odpowiednim pękiem kluczy, dzięki czemu można utworzyć podpisaną aplikację, którą można wdrożyć na urządzeniu iDevice zamiast opcji tylko emulatora.
źródło
Skonfigurowałem serwer kompilacji i skrypty naszej firmy przed użyciem Jenkins, gdzie tworzymy aplikacje na iOS. Jak wielu powiedziało, serwer CI jest dość prosty i lubię Jenkinsa, ponieważ jest darmowy / open source i ma wiele wtyczek, takich jak publikowanie raportów zasięgu lub integracja z github.
źródło