Можно ли установить переменные окружения на заводной функции - PullRequest
0 голосов
/ 09 июля 2019

Я знаю, что у меня может быть раздел среды для конвейера jenkins (декларативный) для этапа.Например:

stage('Name') {
    environment {
        NAME = value
    }   
    steps {
        script {
            Do something using these env vars
        }
    }
} 

Я хочу написать функцию Groovy, определить некоторые env-переменные, запустить что-нибудь и вызвать его из нескольких конвейеров.Что-то вроде:

def function () {
    environment {
        NAME = value
    }
    sh "do something using these env vars"
}

Возможно ли это как-то?

(я знаю, что могу написать sh "ENV=value; some CMD", но у меня мало переменных, и он менее читабелен).

1 Ответ

1 голос
/ 09 июля 2019

Да, вы можете сделать это. Jenkins Pipeline хранит свои переменные окружения в карте с именем ENV. Следовательно, вы можете добавить дополнительные пары ключ-значение на эту карту для дополнительных переменных среды. Это будет сделано в синтаксисе Groovy через:

// syntax option one
env.key = value
// syntax option two
env['key'] = value

Для вашего примера это будет выглядеть так:

def function () {
  env.NAME = value
  sh "do something using these env vars"
}
...