Переменная среды в трубопроводе Дженкинс

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

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

Ответ 1

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

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

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

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

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

Для остальной части документации щелкните ссылку "Синтаксис трубопровода" из любого задания Pipeline введите описание изображения здесь

Ответ 2

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

Один безопасный способ изменить среду:

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

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