扩展Jenkins/Hudson插件以设置环境变量对

dat*_*tka 6 java plugins hudson environment-variables jenkins

我正在扩展现有的Jenkins/Hudson插件.我希望它为正在运行的项目设置一个环境变量对.最简单的方法是什么?

hyd*_*yde 7

在生成过程中,例如在一个Builderperform()方法,你可以做至少这一点:

@Override
public boolean perform(Build<?, ?> build, Launcher launcher, BuildListener listener)
                       throws InterruptedException, IOException {
    //...
    List<ParameterValue> params = new ArrayList<ParameterValue>();
    params.add(new StringParameterValue(name1, value1));
    params.add(new StringParameterValue(name2, value2));
    build.addAction(new ParametersAction(params));
    //...
}
Run Code Online (Sandbox Code Playgroud)

它会将键值对添加为构建参数,这些参数也会以通常的方式显示为环境变量.注意:我没有进行过广泛的测试,在某些情况下可能会出现一些"陷阱"......但到目前为止它对我有用.

  • 好!如果您不希望参数出现在作业页面上,您也可以自己动作实现"InvisibleAction". (2认同)

Jas*_*ger 1

使用EnvInject插件。您可以在作业开始之前创建环境变量,或者将其作为构建步骤来执行。

  • 我想,我还没有表达清楚。我需要我的扩展插件将有关其状态的一些信息保存为环境变量。所以我需要一个通用的 Jenkins 解决方案(代码)。 (3认同)