2013-10-23 16 views
19

Próbuję użyć zmiennych globalnych w Jenkins w systemie Windows, aby "automagicznie" odzyskać właściwą podstawę kodu z naszego systemu SCM, ale w każdym przypadku, którego próbowałem, zastępowanie zmiennych nie miało miejsca.Zmienne globalne Jenkinsa

Wcześniej skonfigurować niektóre zmienne globalne, z wartościami domyślnymi, w ramach „Konfiguracja systemu” i próbowało uzyskać do nich dostęp z $VARIABLE, ${VARIABLE} i %VARIABLE% jako części pola Oddział dla wtyczki Surround SCM bez powodzenia w ogóle.

Zainstalowałem również wtyczkę Global Variable String Parameter z tą samą skutecznością (0%). Używanie wartości literalnej działa dobrze, ale żaden typ zastępowania zmiennych nie działa w ogóle i jestem pewien, że ktoś już wcześniej doszedł do tego i rozwiązał go.

Próbowałem szukając czegoś podobnego do tego, ale nic naprawdę podchodzi do tego wykorzystanie globalnych, zamiast zwykle jest omawiana jako funkcja w skrypcie zewnętrzny lub parametr przekazany do pliku wsadowego, itp

Uruchomiłem "zestaw" jako pierwszy krok i widzę, że zmienna jest dostępna, ale podstawienie po prostu się nie dzieje. Jeśli to oznacza, że ​​będę musiał coś napisać, to niech tak będzie, ponieważ staram się uczynić to niezwykle elastycznym i jak najbardziej bóle głowy, jak to tylko możliwe, ale jak dotąd nie wydaje się, żeby tak było w tym przypadku.

Mój problem jest niesamowicie podobny do tego posta: How are environment variables used in Jenkins with Windows Batch Command?, ale znowu nie szukam skryptu, ponieważ jest to DUŻO prostsze rozwiązanie do bezpośredniego użycia wartości zmiennych.

+0

Aby obejść problem, po prostu wykonuję niezbędne polecenie (sscm.exe ...) jako polecenie Windows Batch, ale chciałbym zostawić to otwarte, ponieważ wydaje mi się, że jest to coś, co powinien "po prostu działać". Myśli, że ktoś ... – plenty

Odpowiedz

40

Ty najlepiej poradził zarządzać zmiennych globalnych z ekranów zarządzania systemem:

Manage Jenkins -> Configure System -> Global Properties 

dużo bardziej niezawodny w porównaniu do ustawiania tych zewnętrznie Jenkins.

+1

te nie wydają się już działać w Jenkins 2.0+ – Morgan

+0

ditto. Ustawiam zmienną globalną, ale nie mogę dodać stałej wartości między powłokami. – mau

0

z https://wiki.jenkins-ci.org/display/JENKINS/Surround+SCM+Plugin

Rozwiązywanie

proszę skontaktować się z obsługą Seapine z pytaniami o integracji lub zgłaszać błędy i propozycje nowych funkcji.

+0

@Underver downvoted: Zastępowanie zmiennych musi być wspierane przez wtyczkę. Surround SCM jest komercyjnym narzędziem, a wtyczka jest dostarczana przez Seapine. Kontaktując się z Seapine, aby dowiedzieć się, czy jest to błąd, a propozycja funkcji lub po prostu konfiguracja miss powinna być najlepszą alternatywą. –

+0

Dzięki za komentarz – Dmitriusan