2017-05-24 53 views
0

私は、Dockerビルドの一部としてJenkinsでいくつかの設定を行い、init.groovy.dスクリプトを使用して設定したいと考えています。Jenkinsグローバル変数を設定する - init.groovy.d

グローバルプロパティが既に存在する場合は以下のコードを正常に実行できますが、グローバルプロパティが存在しない場合はスクリプトは成功しますが、プロパティは追加されません。

import jenkins.* 
import jenkins.model.* 
def instance = Jenkins.getInstance() 
println "--> setting Global properties (Environment variables)..." 
def globalProps = hudson.model.Hudson.instance.globalNodeProperties 
def props = globalProps.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class) 
for (prop in props) { 
prop.envVars.put("PATH", "/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin") 
} 
instance.save() 
println "--> setting Global properties (Environment variables)... done!" 

グローバルプロパティが設定されていないJenkinsインスタンスでこのコマンドを実行するにはどうすればよいですか?

答えて

0

これは、forループが基本的に空の配列をループしているために発生しました。コードを変更することで修正されました。 Jenkinsの問題はありません。

if (envVarsNodePropertyList == null || envVarsNodePropertyList.size() == 0) { 
    newEnvVarsNodeProperty = new hudson.slaves.EnvironmentVariablesNodeProperty(); 
    globalNodeProperties.add(newEnvVarsNodeProperty) 
    envVars = newEnvVarsNodeProperty.getEnvVars() 
} else { 
    envVars = envVarsNodePropertyList.get(0).getEnvVars() 
} 

envVars.put("PATH", "/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin") 
関連する問題