Jenkins job-dsl-plugin: как внедрить переменные среды в задание Ivy?

У меня есть работа Jenkins Ivy, в которой используется шаг Inject environment variables to the build process. Я пишу сценарий DSL, чтобы динамически создавать это задание с помощью подключаемого модуля job-dsl-plugin.

Я установил для этого следующие строки:

steps {
  envInjectBuilder {
    propertiesFilePath('/tmp/file')
  }   
}

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

Processing DSL script ivyJob.groovy
java.lang.IllegalStateException: steps cannot be applied for Ivy jobs

Подключаемый модуль DSL не поддерживает EnvInject для задания Ivy? Если это не так, есть ли способ сделать это программно? Я знаю, что EnvInject совместим с заданиями Ivy, поскольку я могу вручную создать это задание.

Спасибо.


person MisterStrickland    schedule 05.07.2016    source источник


Ответы (1)


Плагин EnvInject позволяет вводить переменные на нескольких этапах жизненного цикла сборки. Шаг сборки — это только одна возможность. Для типа проекта Ivy будут работать свойство задания и параметры оболочки.

ivyJob('example') {
  environmentVariables {
    env('ONE', '1')
    propertiesFile('env.properties')
    keepBuildVariables(true)
  }
  wrappers {
    environmentVariables {
      env('ONE', '1')
      envs(FOO: 'bar', TEST: '123')
      propertiesFile('env.properties')
    }
  }
}

Дополнительные сведения см. в средстве просмотра Job DSL API:

person daspilker    schedule 07.07.2016
comment
Спасибо @daspilker. Метод wrappers - это то, что я искал. - person MisterStrickland; 07.07.2016