Ciągła Integracja dla projektów Xcode?

Po użyciu Hudson do ciągłej integracji z poprzednim projektem, chcę skonfigurować serwer ciągłej integracji dla projektów iPhone, nad którymi teraz pracuję. Po przeprowadzeniu pewnych badań wygląda na to, że nie ma żadnych silników CI zaprojektowanych specjalnie dla Xcode, ale jeden facet miał sukces za pomocą tempomatu w połączeniu z xcodebuild CLI narzędzie . Czy ktoś tego próbował? Czy są jakieś silniki CI, które działają dobrze z projektami Xcode?

I ' m probably going to give Tempomat a try. Wyślę odpowiedź z moimi ustaleniami.

Author: Mike Akers, 2008-10-17

9 answers

Z powodzeniem używam Hudson na Macu z xcodebuild. Wraz z wydaniem 3.0 iPhone sdk masz kontrolę nad celem, konfiguracją i sdk, z którymi projekt ma być zbudowany.

To tak proste, jak stworzenie kroku budowania w hudson i powiedzenie xcodebuild, aby zbudował projekt:
xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1

Praca z góry się opłaciła, ponieważ moje buildy po prostu działają bez dodatkowej myśli. Napisałem szczegółowy opis na moim blogu, jeśli ktoś jest zainteresowany.

Łatwa dystrybucja aplikacji na IPhone ' a

 37
Author: Silentcode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-05 13:36:17

Wskrzeszanie tego wątku. Nie znalazłem satysfakcjonującego rozwiązania do uzyskania zautomatyzowanych kompilacji Xcode z testami jednostkowymi na serwerze kompilacji, więc zrobiłem kilka badań i kodowania. Rezultatem jest Ten post na blogu wyjaśniający to wszystko i skrypt Ruby , który konwertuje wyjście OCUnit z xcodebuild do formatu XML, którego JUnit używa do Raportów z testów. Serwer, który wybrałem to Hudson .

Update 3/2 2012: zaktualizowałem to, aby używać niestandardowych skryptów powłoki dla Budowa i prowadzenie. Dostępne tutaj . Jest dobry nie tylko do ciągłej integracji, ale także do budowania z linii poleceń na własnej maszynie.

 13
Author: Ciryon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-03 09:31:21

Adium używa buildbot z Xcode całkiem skutecznie. Napisaliśmy prosty plik makefile, który wywołuje xcodebuild z odpowiednimi celami i konfiguracjami, ale jestem prawie pewien, że jest to opcjonalne.

 9
Author: Colin Barrett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-17 17:39:09

Apple właśnie wydało(10 czerwca 2013) dla OSX Mavericks (OS X 10.9) nową platformę ciągłej integracji, która jest najbardziej zintegrowanym rozwiązaniem ciągłej integracji, jakie widziałem wcześniej. Jest on dostępny od developer.apple.com, tutaj na tej stronie znajdują się szczegóły:

Https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/

Polecam zapoznać się z prezentacją wwdc 2013 na ten temat.

 9
Author: Rafael Gorski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-01 10:26:24

Używałem CruiseControl z Xcode (podobny do tego, co sugerował Pragmatic Automation) i odniosłem rozsądny sukces. Jestem również bardzo zaznajomiony z CruiseControl i jest to stosunkowo przerażająca konfiguracja formatu konfiguracji.

Korzystałem również z Buildbota, ale okazało się, że jego mocne strony nie odpowiadają moim potrzebom (rozproszone niewolniki budujące i raportujące na wiele różnych systemów). Konfigurowanie konfiguracji buildbota może być sztuką samą w sobie, choć nie jest to trudne. To wszystko w zasadzie pisanie skryptów w Pythonie.

Odkąd Hudson stał się dostępny, polecam go jako drogę do ciągłej integracji. Ma interfejs internetowy (podstawowy niedobór CruiseControl w moim umyśle) i jest bardzo elastyczny w różnych systemach, które obsługuje. Możesz wywoływać Kompilacje oparte na wierszu poleceń dość łatwo i bardzo wyraźnie. To powiedziawszy, nie skonfigurowałem instancji za pomocą Hudson i Xcode, gdzie mam dla innych systemów, więc jest to częściowo spekulacje z mojej strony.

 8
Author: heckj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-20 18:49:37

/ Align = "left" / Hudson jest bardzo elastyczny i pozwala również na użycie skryptów powłoki do budowania: skryptów powłoki i poleceń wsadowych Windows

Wystarczy wpisać xcodebuild. Spójrz na xcodebuild strony man, aby zobaczyć opcje xcodebuild.

 4
Author: catlan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-18 14:30:16

Jeśli nie masz nic przeciwko temu, by żyć na krawędzi, właśnie oddałem Xcode builder dla CruiseControl.

 4
Author: Jeffrey Fredrick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-27 11:30:37

Jenkins wydaje się działać dobrze dla niektórych ludzi. (Chociaż nigdy wcześniej nie korzystałem z żadnego serwera CI. )

Https://wiki.jenkins-ci.org/display/JENKINS/Xcode + Plugin

 1
Author: bentford,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-07 17:03:48

Jenkins działa dobrze. Możesz albo zbudować swój projekt xcode, pisząc własny skrypt powłoki, a następnie pozwolić Jenkins go uruchomić, albo możesz również użyć wtyczki xcode.

Ale trzeba być świadomym problemu władzy. Dzięki niewielkim poprawkom w konfiguracjach Jenkins będziesz w stanie zarządzać swoim serwerem CI w bardzo krótkim czasie.

 0
Author: Tinolover,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-21 02:00:14