2016-07-05 73 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