Wie gehen Sie in TeamCity mit freigegebenen Projekten um?

8

Nehmen wir an, ich habe zwei "Projekte" in TeamCity, zwei Websites, die jeweils eine gemeinsam genutzte Bibliothek verwenden, die nicht im svn-Pfad der Website enthalten ist. Hier ist die Svn-Struktur, um es klarer zu machen:

Website A: svn: // root / web / websitea (verwendet die gemeinsame Bibliothek a)

Website B: svn: // root / web / websiteb (verwendet die gemeinsam genutzte Bibliothek b)

Gemeinsame Bibliothek A: svn: // root / shared / liba

Gemeinsame Bibliothek B: svn: // root / shared / libb

Wie würde ich ein Teamcity-Projekt für die Website einrichten? Gerade jetzt habe ich es auf die svn: // root verweisen, aber das würde es einen Build auslösen, selbst wenn Website b oder Shared Library b geändert wurde, was nicht richtig ist. Was ich wirklich brauche, ist eine Möglichkeit, einen Build nur dann auszulösen, wenn es eine Änderung in svn: // root / web / websaa ODER in svn: // root / shared / liba gibt.

Ich habe versucht, zwei vcs-Roots innerhalb desselben Projekts zu erstellen, die auf die beiden obigen svn-Pfade zeigen, aber es scheint keine Möglichkeit zu bestehen, ein Arbeitsverzeichnis für jedes vcs-root zu setzen. Aus diesem Grund wurde der Inhalt der beiden SVN-Pfade einfach direkt in den Stamm meines Build-Verzeichnisses kopiert, anstatt sie an die richtigen Stellen zu setzen (C: \ Build \ Web \ WebsiteA & amp; C: \ Build \ Shared \ LibA).

    
Justin 02.01.2011, 15:59
quelle

2 Antworten

13

Die CheckRole-Funktionalität von TeamCity unterstützt das von Ihnen beschriebene Setup. Mein Team benutzt es, um etwas zu tun, was Sie versuchen zu tun.

Richten Sie zunächst einen einzelnen SVN-Root ein. Die URL dieser Wurzel wäre etwa so:

%Vor%

Richten Sie dann die folgenden Auscheckregeln ein.

Für Projekt A:

%Vor%

Für Projekt B:

%Vor%

Die TeamCity-Dokumentation zu den Auszahlungsregeln ist in diesem Punkt nicht vollständig klar, aber nur die speziellen Pfade, die Sie eingefügt haben, werden zum Auslösen von Builds verwendet. Dies sollte Ihr Bedürfnis erfüllen, nur Änderungen zu haben, wenn websaa und liba den Build auslösen (und das gleiche für B).

    
Eric 04.01.2011, 18:59
quelle
6

Zusätzlich zu dem, was Eric erwähnt hat, können Sie die VCS-Trigger-Regeln im Abschnitt "Auslöser erstellen" bearbeiten, wenn Sie möchten, dass der gesamte Source-Root ausgecheckt wird, aber nur den Build basierend auf bestimmten Pfaden auslöst / p> %Vor%     

manojlds 07.04.2011 14:45
quelle

Tags und Links