2013-10-01 14 views
17

Wir verwenden GitLab, um unsere Repos zu verwalten. Wir versuchen, GitFlow-Prozessen zu folgen, und als Teil davon möchten wir in der Lage sein, die Tests gegen jede Zusammenführungsanforderung automatisch in TeamCity zu erstellen und auszuführen.Gitlab - Erstellen von Zusammenführungsanforderungen in CI-Server

Von dem, was ich sehen kann, ist dies in GitLab CI möglich, aber für uns ist das keine realistische Option.

Ich habe Tutorials über das Erreichen dieses auf GitHUB mit einer Verzweigungsspezifikation wie + refs/pull/*/merge gesehen - wird eine ähnliche Branchenspezifikation von GitLAB erstellt?

Wir sind mit der Version 4.2 von Gitlab können aber aktualisieren, wenn für diese Funktion und Version erforderlich 8 von Teamcity

+2

Ich denke, das wäre wirklich nützlich. Ein Builder für Zusammenführungsaufforderung ist für Jenkins verfügbar, aber ich finde keine Entsprechung für TeamCity (https://github.com/jenkinsci/gitlab-merge-request-builder-plugin). Wenn man sich die Quelle dieses Plugins anschaut, hat man angedeutet, dass es viel komplizierter ist, als wenn man etwas wie + refs/pull/*/merge betrachtet. –

Antwort

10

Ich habe Gitlab 6.3 und Teamcity 8 und ich brauche auch Feature Zweige zu bauen. Wir haben folgenden Workflow (er basiert auf git-flow, ändert sich aber leicht gemäß unserem Veröffentlichungszyklus).

So haben wir development Zweig und ein Push-Funktion Zweig mit einem bestimmten Namen dev/feature-name-here.

Als nächstes erstellt man eine Zusammenführungsanforderung in GitLab von dev/feature-name-here bis development.

TeamCity ist so konfiguriert, dass automatisch Builds für jeden Zweig mit der folgenden refspec ausgeführt werden: +:refs/heads/dev/(*), damit wir sehen können, dass ein Build für den Zweig feature-name-here automatisch gestartet wird.

Als nächstes habe ich ein benutzerdefiniertes Skript, das in die Zusammenführungs-Anfrage-Seite von GitLab eingebettet ist. Es macht folgendes.

  1. Ermittelt eine Quelle und Zielbranchen von
  2. Mit Teamcity REST API aufzählt bauen bei einer MR-Seite suchen, die zu einem Zielbranchen gehört (in Teamcity 8 wir können benutzerdefinierte Konfiguration ID bauen zuweisen, so bauen wir mit einige semantische Namen wie devUnit, devIntegration, devWhatever, etc ...)
  3. Erstellt eine Tabelle, die Buildstatusbilder für Quell- und Zielzweige für jede zugehörige Buildkonfiguration enthält.

Jetzt sieht es wie folgt aus:

TC Build status at GitLab

nun dieser Ansatz hat einige Nachteile wie wenn man einen Zweig mit einem anderen Push aktualisiert ich nicht von Gitlab Seite herausfinden kann, ist es, neue Commits bereits gebaut oder ich bin gesehen alten Build-Status, so dass ich auf einen Build-Link klicken muss und in TeamCity

+0

Ich habe dies eingerichtet, um die Merge-Anforderungen zu Master zu erstellen. Wir erstellen Hotfixes mit dem Namen 'hf/'. Teamcity nimmt die Zweige auf, aber es ist nicht autobuilding. Gibt es eine bestimmte Einstellung im Build-Trigger? – Broncha

+0

Wir machen nichts Besonderes außer Standard-VCS-Build-Trigger. Sie werden ohne Filter und Ausnahmen konfiguriert - starten Sie einfach, wenn Änderungen erkannt werden. – Olegas

+0

Hi @Olegas, wo kann ich mehr Informationen darüber bekommen, wie Sie dies erreichen? –