Мой трубопровод Дженкинс выглядит примерно так (пожалуйста, прости небольшие ошибки синтаксиса):Установка в-узла переменной среды в работе трубопровода
def buildsToDo = "foo bar".tokenize()
def buildPlan = [:]
for (int i = 0; i < buildsToDo.size(); i ++) {
def tag = buildsToDo[i]
buildPlan[tag] = {
node(tag) {
env.ENVVAR = tag
stage("build " + tag) {
sh 'env'
}
}
}
}
parallel(buildPlan)
Мое намерение состоит в том, чтобы иметь один узел с ENVVAR=foo
и один с ENVVAR=bar
.
На самом деле я вижу, что при выполнении команды env
на обоих узлах устанавливается ENVVAR=bar
.
В соответствии с this tutorial, свойства [специальной переменной env
] являются переменными среды на текущем узле. " Поэтому я ожидаю, что это сработает.
'env' глобален для сборки, так что, когда вы пишете' env.ENVVAR = tag' доступ одинакового значения из двух параллельных потоков расстрелов. – izzekil