Jenkins job-dsl-plugin:如何将环境变量注入常春藤作业?

时间:2016-07-05 21:36:32

标签: jenkins jenkins-job-dsl

我有一个使用Inject environment variables to the build process步骤的Jenkins常春藤作业。我正在编写DSL脚本,以便我可以使用job-dsl-plugin插件动态创建此作业。

我为此设置了以下几行:

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

steps方法只能应用于自由式作业,而不能应用于常春藤作业。我在控制台输出中得到了这个:

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

DSL插件不支持EnvInject用于常春藤工作吗?如果没有,有没有办法以编程方式执行此操作?我知道EnvInject与Ivy的工作兼容,因为我可以手动创建这份工作。

感谢。

1 个答案:

答案 0 :(得分:2)

EnvInject插件允许在构建生命周期的多个点注入变量。构建步骤只是一种可能性。对于常春藤项目类型,作业属性和包装选项将起作用。

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 Viewer: