2015-03-03 14 views
12

Mam łańcuch kompilacji z dwoma projektami: A jest projektem głównym, B zależy od niego. B ma skonfigurowane dwie zależności: artefakt i zależność migawki. Jedna konfiguracja kompilacji dla B ma zestaw zmiennych środowiskowych (parametr). Potrzebuję jednak tego zestawu parametrów dla projektu głównego A.Przekazywanie zmiennej środowiskowej (parametru) do projektu zależności w TeamCity

Czy jest jakiś sposób w TeamCity 9, aby przekazać parametr konfiguracji kompilacji z projektu do jego zależności (w tym samym łańcuchu kompilacji)?

Odpowiedz

15

Od TeamCity 9.0 możliwe jest override the dependencies parameters poprzez przekształcenie ich w budowie zależnej:

reverse.dep.<btID>.<property name> 
+0

woa - nie wiedziałem tego - dobry połów. Właśnie tego chcesz @Matthias – BrokenGlass

+0

Rzeczywiście, dzięki! – Matthias

5

Dla TeamCity 8 i poniżej niestety jedynymi parametrami sposób mogą być przekazane w kierunku łańcucha budowy - odwrotnością tego, co chcesz - właściwości te są nazywane Dependencies Properties:

zależne Właściwości

Są to właściwości dostarczone przez kompilacje, w których bieżąca kompilacja jest zależna od (przez migawkę lub zależność od artefaktów).

Zależności właściwości mają następujący format:

dep.<btID>.<property name>

zależne sypkość z korzenia drzewa do liści (w kierunku przepływu łańcucha Build), ale nie odwrotnie okrągły, dzięki czemu można uzyskać właściwości w B.

to wyjaśnione w Dokumentach here:

Parametry w zależny tworzy

TeamCity zapewnia możliwość wykorzystania właściwości dostarczane przez tworzy obecny zależy od budowy (poprzez punktowe lub artefakt uzależnienia). Gdy kompilacja A zależy od kompilacji B, można przekazać właściwości z budowy B , aby zbudować A, tj. Właściwości można przekazywać tylko w kierunku przepływu łańcucha budowania , a nie odwrotnie. Szczegółowe informacje na temat używania parametrów poprzedniego łańcucha kompilacji znajdują się na stronie właściwości zależności: .

miałem podobny przypadek użycia dla przepływu odwrotnej przed, jak również - obejście nie całkiem - w zasadzie zamiast uruchamiając łańcuch gromadzeniu bezpośrednio chcemy wywołać niezależnego build (nazwijmy go X), który tylko tam, aby utrzymać parametry budowania - następnie zmodyfikuj łańcuch kompilacji tak, aby budować root (A w twoim przypadku) zależał od ostatniej udanej kompilacji X i mieć wyzwalacz łańcucha budowania na udanej kompilacji X - to powinno osiągnąć to, co Ty chcieć.

Dla TeamCity 9 patrz @ Odpowiedź Aliny (która powinna być zaakceptowaną odpowiedzią).

+0

Cóż, myślę, że masz rację, docs potwierdzić, że to działa tylko w kierunku łańcucha budowy.Tak więc skończyłem kopiowaniem konfiguracji kompilacji A na inną, ustawiając tam zmienną i używam jej jako zależności dla B. – Matthias