Как сделать переменные окружения, заданные заданием dsl, доступными в последующих заданиях? - PullRequest
0 голосов
/ 26 июня 2019

Сеялка заданий создает конвейерное задание и устанавливает переменную среды, используя job dsl, как показано ниже, это конвейерное задание запускает другое задание (скажем, job2), которое, в свою очередь, запускает другое задание (например, job3). Я хочу, чтобы переменная среды, заданная в начальном задании, была доступна в запущенных заданиях.

pipelineJob("job1"){
  description("job1..")
  concurrentBuild(false)
  environmentVariables(
         globalEnv + [TEMP_ENV1               : 'true',
                      TEMP_ENV2               : 'true'
                     ]
   )
  definition {
      cps {
         script(
               """
job1script()
"""
         )
      }
   }
}

Я хочу получить доступ к TEMP_ENV1 и TEMP_ENV2 в job3, но оба в этом задании не имеют значения. У меня есть проверка в сценарии, какой job3 выполняет его, и он не работает, например, if (env.TEMP_ENV1) { }

1 Ответ

0 голосов
/ 27 июня 2019

Вы должны вызвать задание, используя шаг сборки (https://jenkins.io/doc/pipeline/steps/pipeline-build-step/)), и передать их как параметры:

build(
    job: "myjob2", 
    parameters: [
        string(name: 'TEMP_ENV1', defaultValue: TEMP_ENV1, description: 'Temp env var 1')
    ], 
    propagate: false
)
...