【问题标题】:Jenkins plugin - environment variablesJenkins 插件 - 环境变量
【发布时间】:2013-01-08 11:45:54
【问题描述】:

我正在将 Jenkins 与 Testswarm 和这个 plugin (forked sources) 一起使用。

我想为 Testswarm 获取一个包含 Jenkins 作业名称、内部版本号和 svn 修订号的“作业名称”。

将 JOB_NAME 放在配置字段中没有帮助,变量不会被其值替换。

所以我修改了插件源代码以获取 Jenkins 环境变量,但我得到的只是“null”。

这是罪魁祸首代码。 (在第 205 行的 src/main/java/com/javaclimber/jenkins/testswarmplugin/TestSwarmBuilder.java 中)

我对此功能进行了很多研究,但没有找到获取变量的工作示例。

public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
    ...
EnvVars envVars = build.getEnvironment(listener);
    ...
    envVars.get("JOB_NAME")
}

我在 Java 中并不自在,我被困在这一点上。 有人知道吗?

更新:java使用版本
java版本“1.6.0_24”
OpenJDK 运行环境 (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~10.04.2)
OpenJDK 64 位服务器虚拟机(build 20.0-b12,混合模式)

【问题讨论】:

    标签: variables plugins jenkins environment


    【解决方案1】:

    更换

    EnvVars envVars = build.getEnvironment(listener);
    

    EnvVars envVars = new EnvVars();
    envVars = build.getEnvironment(listener);
    

    成功了……

    【讨论】:

    • 这毫无意义......两个代码 sn-ps 应该产生相同的东西,除了第二个创建一个 EnvVars 的实例,它从不使用并被立即丢弃。任何想法为什么这解决了这个问题?
    • 感谢您回答自己的问题,让我的生活更轻松。
    • @Illidanek,Jenkins 管道似乎在服务器上执行,因此原始帖子的作者可能缺少为代理定义的变量(通过服务器的代理定义或通过代理的操作系统)。跨度>
    【解决方案2】:

    您使用的是什么版本的 Java? 根据this,获取环境变量需要添加以下内容:

    String job_name = System.getenv("JOB_NAME");
    

    你试过这个吗?

    另外,我不确定配置字段是什么样的,但您是否尝试使用 $JOB_NAME 而不是 JOB_NAME

    【讨论】:

      【解决方案3】:

      Jenkins 管道似乎在服务器上执行,因此原始帖子可能缺少为代理定义的变量(通过服务器的代理定义或通过代理的操作系统)。

      不知道Jenkins pipeline 获取代理环境的方式。

      【讨论】:

        【解决方案4】:

        我偶然发现了这个并搜索了一段时间以寻找解决方案,所以下一个用户的答案是:如果您需要环境变量,请覆盖

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

        而不是

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

        并使用参数中的EnvVars。 (另见https://issues.jenkins.io/browse/JENKINS-29144

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-13
          • 2014-10-28
          • 1970-01-01
          • 2014-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-01
          相关资源
          最近更新 更多