我正在尝试开发新的Jenkins插件。我是从詹金斯提供的hello-world archetype开始的。我的插件工作正常!
Bun现在我想从我的插件中添加一些环境变量。我使用过密码来做到这一点
public void perform(Run<?, ?> run, FilePath workspace, Launcher launcher, TaskListener listener) {
...
EnvVars envVars = run.getEnvironment(listener);
envVars.put("SOME_VARIABLE", "SOME_VALUE");
...
}
但它不起作用。我试图在下一个构建步骤中使用此变量并且什么也没得到。我用谷歌搜索了它并没有明确的描述。现有插件的源代码(EnvInject等)也没有帮助。
我做错了什么?任何人都可以提供一些样品吗?
答案 0 :(得分:0)
来自我的插件......
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);
}