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).
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).
Tags und Links teamcity