2015-02-26 15 views
5

Podczas tworzenia Bot Xcode w Xcode 6, jest on połączony z bieżącą aktywną gałęzią w Xcode kontroli źródła. Wydaje się, że nie ma obsługiwanej metody zmiany gałęzi po utworzeniu bota.Jak ustawić Bot Xcode, aby uruchamiał "on commit" dla wszystkich gałęzi zdalnego repozytorium?

Xcode Service: Select Git Branch

postawiłem mój bot do uruchomienia "na popełnienia". Znajduję, gdy zobowiązuję się do , że oddział bot natychmiast integruje projekt. Ale kiedy zobowiązuję się do innej gałęzi, bot nie podejmuje żadnych działań.

Idealnie chciałbym pojedynczego Xcode Bot, aby spojrzeć na wszystkie gałęzie zdalnego repozytorium. Kiedy pojawi się nowe zatwierdzenie do dowolnej gałęzi, bot i jego testy powinny zostać uruchomione.

Nie chcę tworzyć nowego bota dla każdej gałęzi. Czy istnieje rozwiązanie?

zgłoszenia: Forum
rdar://20154198

Developer:
https://devforums.apple.com/thread/263490

Odpowiedz

2

Jabłko odpowiedzi z forum dev:

To nie jest coś Xcode Server obsługuje. Możliwe, że będziesz w stanie stworzyć spust przed integracją, aby zmienić gałęzie w kopii roboczej i wywołać osobne wywołania xcodebuild, ale wyniki raportowane w interfejsie użytkownika będą dotyczyć jedynie wersji Xcode Server (kompilacja, którą XCS uruchamia po uruchomieniu wyzwalacza) .

https://devforums.apple.com/thread/263490

rdar: // 20154198

+0

Zmieni zaakceptowaną odpowiedź, jeśli to zawsze działa domyślnie w Xcode ... – pkamb

2

To nie jest obecnie możliwe z Xcode Bots (aktualne wersje są Xcode Server 4.0.3 & Xcode 6.2). Bot będzie śledził tylko określoną formę oddziału, w której został utworzony.

Było to możliwe w przeszłości na Xcode Server 3 i Xcode 5 przy użyciu https://github.com/modcloth-labs/github-xcode-bot-builder, ale ten projekt nie został zaktualizowany do pracy z najnowszą wersją Xcode Server i Xcode.

Mam także nadzieję, że Apple wkrótce wprowadzi tę funkcję. Byłoby wspaniale móc mieć pojedynczego bota monitorującego repo dla nowych wniosków o wyciągnięcie i po znalezieniu integracji z tym PR. Na razie jednak nie jest to możliwe.

Aktualizacja 19.03.2015: Jak donosi @Gus w innym odpowiedź, nie jest to nowy system Mac OS X na podstawie projektu, który może pomóc w stworzeniu bot ad hoc dla oddziałów fabularnych/PR nazywa XBotBuilder - https://github.com/modcloth-labs/XBotBuilder. Warto zauważyć, że obecnie ten projekt działa tylko z jednym repo Githuba. Tak więc, jeśli masz więcej niż jedno repozytorium, które chciałbyś monitorować dla PR-ów, nadal nie jest to możliwe, chyba że masz wiele maszyn, z których każda uruchamia inną instancję XBotBuilder i kieruje do innego repozytorium.

+0

Dzięki. Możesz wydobyć 'rdar: // 20154198' jeśli chcesz pomóc! – pkamb

+1

sprawdź https://github.com/ modcloth-labs/XBotBuilder zgodnie z odpowiedzią Gusa –

4

Istnieje również https://github.com/modcloth-labs/XBotBuilder opracowany przez tych samych twórców narzędzia @ jeremy-fox. Utworzy bota na żądanie Pull, a następnie ponownie uruchomi bota dla każdego dodatku w PR.

Wydaje się, że jest na wczesnym etapie i bez dokumentacji, ale kod wydaje się być dobrze zorganizowany, więc nie byłoby trudno go uruchomić lub zmienić jego zachowanie, aby robić to, co chcesz.

+1

Używamy tego w naszym procesie kompilacji To jest niewiarygodne i może użyć dodatkowej miłości ze społeczności –

5

W tej chwili używamy narzędzia o nazwie Buildasaur (https://github.com/czechboy0/Buildasaur), aby poprawić naszą CI-pracy. Jest napisany szybko i pomaga automatycznie tworzyć/uruchamiać/kasować boty dla jednego repozytorium github, na przykład, gdy tworzone było polecenie pullreading lub nowsze zatwierdzenia zostały wysłane do żądania pullre. Właściwie działa poprawnie na naszym Xcode Server 6.3. Niestety działa tylko na jedno repozytorium w tym samym czasie. :-( Mamy również nadzieję, że wkrótce Apple zaimplementuje takie funkcje:

+0

Jestem praca nad wsparciem dla wielu repozytoriów :) Głosuj: https://github.com/czechboy0/Buildasaur/issues/12 – czechboy

+0

W rzeczywistości Buildasaur obsługuje teraz synchronizację wielu repozytoriów. – czechboy