2015-02-26 27 views
5

Wenn Sie einen Xcode Bot in Xcode 6 erstellen, wird er mit dem aktuell aktiven Zweig in Xcode Quellcodeverwaltung verknüpft. Nach dem Erstellen des Bot scheint es keine unterstützte Möglichkeit zum Ändern von Zweigen zu geben.Wie setze ich Xcode Bot so, dass er "on commit" für alle Zweige des Remote-Repositorys ausführt?

Xcode Service: Select Git Branch

Ich habe meine Bot zu laufen "auf Commit" gesetzt. Ich finde, wenn ich diesen Zweig verpflichte, integriert der Bot sofort das Projekt. Aber wenn ich mich in einen anderen Zweig verpflichte, ergreift der Bot keine Maßnahmen.

Idealerweise möchte ich einen einzigen Xcode Bot, um alle Zweige des Remote-Repository zu sehen. Wenn es einen neuen Commit zu irgendeinem Zweig gibt, sollten der Bot und seine Tests ausgeführt werden.

Ich möchte nicht für jeden Zweig einen neuen Bot erstellen. Gibt es eine Lösung?

Bug Report:
rdar://20154198

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

Antwort

2

Apple- Antwort von dem Entwickler-Forum:

Dies unterstützt nicht etwas Xcode Server. Sie können möglicherweise einen Vorintegrationstrigger erstellen, um Zweige in der Arbeitskopie zu wechseln und separate xcodebuild-Aufrufe aufzurufen, aber die in der Benutzeroberfläche gemeldeten Ergebnisse beziehen sich nur auf die Xcode Server-Builds (der Build, den XCS nach der Ausführung Ihres Triggers ausführt). .

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

rdar: // 20154198

+0

Wird die angenommene Antwort ändern, wenn dies funktioniert standardmäßig in Xcode ... – pkamb

2

Dies ist derzeit nicht möglich, mit Xcode Bots (aktuelle Versionen sind Xcode Server 4.0.3 & Xcode 6.2). Ein Bot verfolgt nur das spezifische Zweigformular, in dem er erstellt wurde.

Dies war in der Vergangenheit auf Xcode Server 3 und Xcode 5 mit https://github.com/modcloth-labs/github-xcode-bot-builder möglich, aber dieses Projekt wurde nicht aktualisiert, um mit der neuesten Version von Xcode Server und Xcode zu arbeiten.

Ich hoffe auch wirklich, dass Apple diese Funktion bald einführt, es wäre großartig, einen einzelnen Bot zu haben, der ein Repo für neue Pull Requests überwacht und wenn eine Integration gegen diesen PR gefunden wird. Für jetzt ist es einfach nicht möglich.

-Update 2015.03.19: Als @Gus in einer anderen Antwort berichtet, gibt es ein neues Mac OS X-basiertes Projekt, das mit Ad-hoc-Bot-Erstellung für Feature branches/PR der gerufenen XBotBuilder helfen kann - https://github.com/modcloth-labs/XBotBuilder. Es sollte angemerkt werden, dass dieses Projekt derzeit nur mit einem GitHub Repo funktioniert. Wenn Sie also mehr als einen Repo haben, den Sie für PRs überwachen möchten, ist dies derzeit noch nicht möglich, es sei denn, Sie haben mehrere Computer, die jeweils eine andere Instanz von XBotBuilder ausführen und auf einen anderen Repo abzielen.

+0

Danke. Sie können dupe 'rdar: // 20154198', wenn Sie helfen möchten! – pkamb

+1

check out https://github.com/ modcloth-labs/XBotBuilder nach Gus Antwort –

4

Es gibt auch https://github.com/modcloth-labs/XBotBuilder entwickelt von den gleichen Machern des Tools @ Jeremy-Fox. Er erstellt einen Bot pro Pull-Anforderung und führt den Bot für jede Hinzufügung in der PR erneut aus.

Es scheint in frühen Stadien und ohne Dokumentation zu sein, aber der Code scheint gut organisiert zu sein, so wäre es nicht schwer, es zur Arbeit zu bringen oder sein Verhalten zu ändern, um zu tun, was Sie wollen.

+1

Wir verwenden dies in unserem Build-Prozess.Es ist unglaublich und könnte einige zusätzliche Liebe aus der Community verwenden –

5

Im Moment haben wir ein Tool verwenden Buildasaur (https://github.com/czechboy0/Buildasaur) genannt unsere CI-Workflow zu verbessern. Es ist in swift geschrieben und hilft beim Erstellen/Ausführen/Löschen von Bots automatisch für ein Github-Repository, zum Beispiel wenn ein Pullrequest erstellt wurde oder neuere Commits an den Pullrequest übergeben wurden. Eigentlich funktioniert es auf unserem Xcode Server 6.3. Leider funktioniert es nur für ein Repository gleichzeitig. :-( Wir hoffen auch, dass Apple solche Funktionen bald implementieren wird.

+0

Ich bin Arbeiten an der Multi-Repo-Unterstützung :) Setzen Sie es hoch: https://github.com/czechboy0/Buildasaur/issues/12 – czechboy

+0

Tatsächlich unterstützt Buildasaur jetzt Multi-Repository-Synchronisierung. – czechboy