2015-01-27 18 views
5

Kann mir jemand sagen, wie der beste Weg wäre, TeamCity-Builds zu konfigurieren, wenn ich identische Build-Konfigurationen ausführen möchte, aber auf verschiedenen VCS-Roots?Best Practice für identische TeamCity-Builds über verschiedene VCS-Wurzeln hinweg

z.B. Ich habe mehrere 'Build & Test' Konfigurationen für ein Repository (für jedes Projekt im Repo), und ich möchte alle Einstellungen über unsere master/develop/r1.0/etc Zweige duplizieren?

In der Vergangenheit habe ich einfach den gesamten Build-Konfigurationssatz dupliziert und den VCS-Stamm geändert, um dies zu erreichen, aber wie die Anzahl der Zweige wächst (mit mehr Release-Zweigen im Laufe der Zeit), wie kann ich meine Konfigurationen vereinfachen und Minimiere, wie viele Stellen ich ändern müsste, wenn sich etwas am Build geändert hätte?

+0

Sie bauen und testen Legacy-Releases usw.? - Persönlich benutze ich TC @work, aber nur für mittelmäßige Dinge wie "baue und teste diesen einen Release Branch und stelle es auf Testing um - steig dann auf Production" hoch - ich halte nur 1 Release Branch pro Projekt. Ich glaube nicht, dass TC auf eine andere Art und Weise auf Ihre Wünsche eingehen kann, als Sie bereits wissen und verwenden. Sorry – VisualBean

+0

Ich würde sie erstellen und testen, sobald der Zweig erstellt wurde, und dann müssen alle Hotfixes in diesem Zweig denselben Prozess durchlaufen. Es können 3-4 Freisetzungszweige gleichzeitig im Spiel sein. –

+0

Welche Versionskontrolle verwenden Sie? Wie in, was sind die verschiedenen VCS Wurzeln? – psych

Antwort

4

Hier ist mein Standpunkt zu diesem Problem. Ich denke, diese Lösung für Sie verwendet Build Configuration Template + Parametrisierung in VCS-Root. Wir haben etwa 20 Build-Konfigurationen (1 Konfiguration = 1 Zweig), nur von zwei Vorlagen und einem VCS-Root. Alle üblichen Sachen für die Konfiguration werden in der Vorlage gespeichert. Nur wenige spezifische Parameter sind in der Konfiguration selbst und Sie legen sie bei der Erstellung der Konfiguration aus der Vorlage fest. Einer davon ist der Zweigname, der in meinem Fall eng mit dem Konfigurationsnamen verbunden ist.

Vorlagen sind

  1. Kontinuierliche Integration template -
  2. Mitteilung Vorlage, wo Sie nur Projekte überprüfen bauen wollen - Bauen und Release Generation

VCSroot Punkte nur Wurzel der Quellcodeverwaltung. Der Branch-Parameter von vcs root wird auf den benutzerdefinierten Zweigparameter gesetzt, den die Buildkonfiguration von der Buildkonfigurationsvorlage erbt.

Wir haben Niederlassungen wie diese strukturiert

-Master 
-Development 
-Releases__3.4.1 
     |_3.4.2 
     |_3.4.3 

Meister und Entwicklung Continuous Integration Vorlage, und jede neue Version Zweig wird mit Release-Konfiguration Vorlage. Für mich sind die Vorarb der neuen Konfiguration für 3.4.4 Zweig schaffen, ist wie folgt:

  1. Neue Konfiguration erstellen
  2. Template wählen wählen: 3.4.4
  3. :
  4. Geben Sie den Namen der Konfiguration Geben Sie loslassen
  5. Speichern
  6. Run bauen

Punkt ist, dass Firmenname Parameter in Release t emplate ist wie dies

%BranchPath%=Release/%ConfigurationName% 

für Continuous Integration template es

%BranchPath%=%ConfigurationName% 

Weiteres in VCS Wurzelzweig auf% BranchPath% eingestellt würde, um es von der Konfiguration übergeben, so VCS mit beiden Vorlagen arbeiten kann und alle 20 Konfigurationen Und das ist alles ..:) Hoffe es hilft irgendwie