Ciągła integracja (z projektami na iOS i Androida) [zamknięte]

10

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.

  1. Twoja myśl na temat Jenkinsa?
  2. Czy istnieje sposób, aby CI sprawdził, czy projekt jest
    zgodny ze standardami kodowania (np. Luźne sprzężenie itp.)?
paxx
źródło
3
„Jenkins i Hudson to dwoje” ... hmm, czy wiesz, że Jenkins to nowa nazwa Hudsona ?
komara
1
Naprawdę tego nie wiedziałem! Jak powiedziałem, jestem naprawdę nowy w CI i mam 0 doświadczenia. Soooo .. J & H to samo .. Zgaduję, że zawęża moje opcje :)
paxx
Istnieje również Team City, Cruise Control i inne.
Kyle Hodgson
@gnat: cóż, myślę, że Jenkins jest rozwidleniem Hudsona. Myślę, że Hudson wciąż tam jest: hudson-ci.org zarządzany przez Oracle. Jenkins to bardzo dobry widelec, który migrował większości ludzi. Przepraszam, jeśli się mylę ...
dbalakirev

Odpowiedzi:

9

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

Czy istnieje sposób, aby CI sprawdził, czy projekt jest zgodny ze standardami kodowania (np. Luźne sprzężenie itp.)?

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.

Murph
źródło
Z powodzeniem korzystałem z TeamCity jako mojego serwera CI dla iOS. Wyobrażam sobie, że korzystanie z niego na Androidzie jest
oczywiste
5

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.

Wyatt Barnett
źródło
Czy można zainstalować TeamCity na serwerze linux, a następnie sprawić, by obsługiwał projekty iOS?
paxx
1
TeamCity nie ma znaczenia, to agent kompilacji. A na iOS musisz wdrożyć na komputerze Mac. Tylko ma łańcuch narzędzi. Prawdopodobnie możesz zrobić kilka rzeczy za pomocą GNUStep, ale podejrzewam, że będziesz miał dość frustrujący czas na wszystko, co nie jest trywialne.
Wyatt Barnett
2

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.

Timothy Chen
źródło