2016-07-05 93 views
1

我有一个使用Inject environment variables to the build process步骤的Jenkins Ivy作业。我正在编写一个DSL脚本,以便我可以使用job-dsl-plugin插件动态创建此作业。Jenkins 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 for Ivy作业?如果没有,有没有办法以编程的方式做到这一点?我知道EnvInject与Ivy作业兼容,因为我可以手动创建这项工作。

谢谢。

回答

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') 
    } 
    } 
} 

查看招聘DSL API查看器的详细信息:

+0

谢谢@daspilker。 'wrappers'方法就是我正在寻找的。 – Phil