2009-10-13 13 views
20

Zakładam TeamCity i zastanawiam się, co powinienem użyć jako Korzeń VCS. RepozytoriumGdzie powinienem wskazać katalog główny VCS TeamCity?

Moje svn znajduje się http://obfuscatedserver/svn/main/MyProject1/

powinienem ustawić VCS Korzeń na http://obfuscatedserver/svn/main/MyProject1/ lub użyj folder bagażnik na http://obfuscatedserver/svn/main/MyProject1/trunk/?

Teraz jestem nie przy użyciu folderu trunk i musiałem ustawić opcję Build Runner "Build file path" na "trunk/MyProject1.proj" (przy użyciu msbuild).

Która lokalizacja jest odpowiednia?

Odpowiedz

24

Polecam użycie http://obfuscatedserver/svn/main/ jako katalogu głównego VCS, a następnie ograniczenie, które foldery są wypisane przy użyciu reguł kasowania.

Dodaj następujące zasady realizacji transakcji (§ 2 kompilacji config):

+:/MyProject1/trunk 

Będziesz prawdopodobnie trzeba zaktualizować lokalizację pliku msbuild do

MyProject1/trunk/MyProject1.proj 

i ustawić pracę katalog do

MyProject1/trunk 

Wydaje się, że to dużo pracy, ale następnym razem, gdy chcesz dodaj nową kompilację, nie musisz tworzyć nowego VCSroot.

Jednak prawdziwa korzyść pojawia się, gdy TeamCity odpytuje twoje repozytorium SVN. Po sondowaniu twojego repo raz odkryjesz wszystkie zmiany dla wszystkich twoich buildów. Jest to szczególnie ważne, jeśli twoje repozytorium jest hostowane gdzieś jak sourceforge lub kod Google. Na pewno nie chcesz odpytywać swoich serwerów za każdą konfigurację, którą skonfigurowałeś.

Ponadto, jeśli twoje repo jest hostowane przez stronę trzecią, możesz ustawić interwał sprawdzania vcsRoot raz na godzinę lub podobnie. Zawsze możesz poprosić teamcity, aby sprawdził oczekujące zmiany z menu działań na dowolnej ze stron przeglądu budowy, jeśli nie możesz się martwić czekaniem na upłynięcie godziny.

+0

Musiałem trochę wstrzymać wdrażanie naszego serwera CI, ale gdy tylko dostanę czas, aby to zakończyć, spróbuję twojej sugestii. –

+4

Możesz zmapować miejsce docelowe w regule kasowania w następujący sposób: '+:/MyProject1/trunk =>.". To sprawdzi zawartość pnia jako folder główny dla kompilacji, a zatem lokalizacja pliku msbuild to po prostu 'MyProject1.proj'. Dodatkowo możesz zostawić katalog roboczy pusty. – timomeinen

2

Powinieneś użyć .../trunk /, ponieważ przyspieszy to checkout, w przeciwnym razie TeamCity dostanie wszystkie gałęzie, które prawdopodobnie nie są potrzebne do budowy.

+1

Możesz rozwiązać problem pobierania gałęzi, tagów itp., Modyfikując reguły realizacji transakcji. – dthrasher

2

Do chwili obecnej użyłem ../trunk jako root. Jest to miłe, ponieważ w moim przypadku wszystkie projekty znajdują się pod bagażnikiem, więc mogę z łatwością wykonać kompletne zamówienie.

Ale funkcja etykietowania nie działa, ponieważ trzeba użyć reguły takiej jak "znaczniki trunk =>" i katalogu głównego będącego rodzicem tych katalogów. Ponieważ chciałbym oznaczyć każdą wersję wydania, teraz myślę o zmianie układu podobnego do tego, który sugerował CrazyCoder.

Powiązane problemy