2017-01-12 8 views
12

Czy istnieje jakakolwiek zmienna środowiskowa dostępna do uzyskania tytułu potoku Jenkinsa?Zmienna środowiskowa w Jenkins Pipeline

Wiem, że możemy użyć $JOB_NAME, aby uzyskać tytuł do pracy freestyle, , ale czy jest coś, co można wykorzystać do uzyskania nazwy potoku Pipeline?

+0

Możesz rzucić okiem na tę odpowiedź, jeśli chcesz zobaczyć zmienne, które są dostępne w twoim potoku. https://stackoverflow.com/a/42138466/1238300 –

Odpowiedz

30

Można uzyskać dostęp do tych samych zmiennych środowiskowych z groovy przy użyciu tych samych nazw (np. JOB_NAME lub env.JOB_NAME).

Z dokumentacji:

Zmienne środowiskowe są dostępne z kodem Groovy jako env.VARNAME lub po prostu jako VARNAME. Można pisać do takich właściwości, jak również (tylko przy użyciu env prefiks.):

env.MYTOOL_VERSION = '1.33' 
node { 
    sh '/usr/local/mytool-$MYTOOL_VERSION/bin/start' 
} 

Definicje te będą również dostępne poprzez API REST w trakcie budowy lub po jej zakończeniu, a od upstream Pipeline buduje przy użyciu build krok.

Dla reszty dokumentacji, kliknij „Pipeline Syntax” link z każdej pracy Pipeline enter image description here

+0

Dzięki, Użyłem env.MyVariable i działa w moim usecase teraz mogę zdefiniować zmienne środowiskowe z potoku. Dzięki za zaoszczędzenie czasu dla mnie. – Akki

15

Aby uniknąć problemów z efektów ubocznych po zmianie env, zwłaszcza przy użyciu wielu węzłów, to lepiej, aby ustawić tymczasowy kontekst.

Jeden bezpieczny sposób na zmianę środowiska jest:

withEnv(['MYTOOL_HOME=/usr/local/mytool']) { 
    sh '$MYTOOL_HOME/bin/start' 
} 

Takie podejście nie zatruwają env po wykonaniu polecenia.