2016-09-23 29 views
6

Chcę ustawić dynamicznie wartość 'teamcity.build.branch' zgodnie z wynikiem kolejnej konfiguracji TC części rurociągu kompilacji.Dynamicznie zmieniająca się "teamcity.build.branch"

Czy to możliwe? Wygląda na to, że wartość jest oceniana i używana na początku procesu budowania.

USECASE:

  • jestem wykonanie konfiguracji TC build, który wygeneruje unikalny numer
  • w podłączonym części konfiguracji TC build tego samego rurociągu chcę numer do wykorzystania w „TeamCity .build.branch '- tylko dla celów wizualizacji

Używam już usługi wiadomości do nadpisania parametru, ale zmiana nie jest brana pod uwagę. Wygląda na to, że wartość jest odczytywana na bardzo wczesnym etapie procesu budowania.

+0

Czy chcesz budować na jednej gałęzi spowodować build być wyzwalany w tej samej branży? –

+0

Zaktualizowany użytek – Crazyjavahacking

Odpowiedz

2

Można nadpisać wartość parametru za pomocą prostego skryptu, który emituje "set parameter" service message.

za pomocą dedykowanego wiadomości sieciowej w skrypcie kompilacji, można dynamicznie aktualizować parametry kompilacji build prawo od etapu budowy (...)

z tym podejściem, tutaj są kroki musisz wykonać:

W pierwszej konfiguracji kompilacji zdefiniuj niestandardowy parametr budowania i ustaw jego wartość na unikalny numer, który generujesz. Zrobić to bezpośrednio ze skryptu, który generuje unikalny numer pisząc coś takiego STDOUT:

##teamcity[setParameter name='magicNumber' value='1234'] 

W utrzymaniu build config, teraz masz dostęp do tego parametru. Korzystanie drugi skrypt kompilacji, można zastąpić teamcity.build.branch z tego samego mechanizmu:

##teamcity[setParameter name='teamcity.build.branch' value='the new value'] 

Uwaga 1: Polecam przed zastąpieniem wbudowanych parametrów, ponieważ może to mieć dziwne efekty uboczne. Zamiast tego zdefiniuj niestandardowy parametr w drugiej konfiguracji kompilacji i użyj go w swoich wizualizacjach.

Uwaga 2: W przypadku, gdy zdecydujesz się zignorować Uwaga 1, może być konieczne, aby zastąpić parametry kompilacji poprzez ustawienie właściwości zależnościach jak nakreślono in the docs w sekcji „Nadrzędne zależne Properties”:

##teamcity[setParameter name='reverse.dep.*.teamcity.build.branch' value='the new value'] 
+0

Zaktualizowałem pytanie. Już modyfikuję wartość za pomocą usługi wiadomości. Jednak zmiana nie jest brana pod uwagę. – Crazyjavahacking

+0

Zaktualizowałem odpowiedź. Jeśli to w ogóle możliwe, to tak. Nie jestem jednak w 100% pewien, czy rzeczywiście jest to możliwe. – theDmi