2017-01-12 5 views
12

Есть ли какая-либо переменная среды для получения названия трубопровода Jenkins?Переменная окружения в трубопроводе Jenkins

Я знаю, что мы можем использовать $JOB_NAME, чтобы получить титул для фристайла, , но есть ли что-нибудь, что можно использовать для получения названия трубопровода?

+0

Вы можете посмотреть этот ответ, если хотите увидеть переменные, доступные в вашем конвейере. https://stackoverflow.com/a/42138466/1238300 –

ответ

30

Вы можете получить доступ к тем же переменным среды из groovy, используя те же имена (например, JOB_NAME или env.JOB_NAME).

Из документации:

Переменные среды доступны из Groovy кода как env.VARNAME или просто как VARNAME. Вы можете написать на такие свойства, а также (только с использованием окр префикса.):

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

Эти определения также будут доступны через REST API в процессе сборки или после его завершения, и от трубопровода выше по потоку сборки, используя встроенный шаг.

Для остальной части документации, нажмите кнопку «Трубопроводный Syntax» ссылку от любой работы трубопровода enter image description here

+0

Спасибо, Я использовал env.MyVariable, и теперь он работает в моей утилите. Я могу определить переменные среды из конвейера. Спасибо, что сэкономил мне некоторое время. – Akki

15

Чтобы избежать проблем побочных эффектов после изменения env, особенно с использованием нескольких узлов, то лучше установить временный контекст.

Одним из надежных способов для изменения окружающей среды является:

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

Этот подход не отравить окр после выполнения команды.

Смежные вопросы