簡體   English   中英

在Jenkins插件中設置envvars

[英]Setting envvars in Jenkins plugin

我正在嘗試開發新的Jenkins插件。 我從詹金斯提供的hello-world 原型開始。 我的插件正常工作!

包子現在我想從我的插件中放入一些環境變量。 我用代碼來做到這一點

public void perform(Run<?, ?> run, FilePath workspace, Launcher launcher, TaskListener listener) {

    ...
    EnvVars envVars = run.getEnvironment(listener);
    envVars.put("SOME_VARIABLE", "SOME_VALUE");
    ...

}

但這不起作用。 我正在嘗試在下一個構建步驟中使用此變量,但一無所獲。 我已經用谷歌搜索了,沒有很明確的描述。 現有插件的源代碼(EnvInject等)也無濟於事。

我究竟做錯了什么? 有人可以給我一些樣品嗎?

從我的插件...

 private void putEnvVar(String key, String value) throws IOException {
     Jenkins jenkins = Jenkins.getInstance();
     DescribableList<NodeProperty<?>, NodePropertyDescriptor> globalNodeProperties = jenkins.getGlobalNodeProperties();
     List<EnvironmentVariablesNodeProperty> envVarsNodePropertyList = globalNodeProperties.getAll(hudson.slaves.EnvironmentVariablesNodeProperty.class);

     EnvironmentVariablesNodeProperty newEnvVarsNodeProperty = null;
     EnvVars envVars = null;

     if (envVarsNodePropertyList == null || envVarsNodePropertyList.isEmpty()) {
        newEnvVarsNodeProperty = new hudson.slaves.EnvironmentVariablesNodeProperty();
        globalNodeProperties.add(newEnvVarsNodeProperty);
        envVars = newEnvVarsNodeProperty.getEnvVars();
     } else {
        envVars = envVarsNodePropertyList.get(0).getEnvVars();
     }
     envVars.put(key, value);
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM