如何在EnvInject中将文件内容作为env变量导入?

时间:2019-08-21 05:18:37

标签: jenkins jenkins-pipeline jenkins-plugins

我正在配置一个jenkins作业,该作业运行一些测试任务,并将所有结果导出到支持作业(简称为sup),该作业将所有需要的数据上传到数据库中。现在,我有一个名为commitid.txt的文件,其中包含测试任务代码的提交ID。如何读取commitid.txt并将其内容设置为env var(例如COMMITID)?

我试图使用作业的名称和ID(例如build_number)来确定commitid.txt的放置位置并以sup方式获取它。 Sup将解析文件的内容。但是此方法是特定于作业的,也就是说,我需要对作业的名称进行硬编码来确定commitid.txt的URL。例如,如果作业为“ JOBAAA”,则URL为http://foo.bar.aaa/aaa/commitid.txt,如果作业为“ JOBBBB”,则URL为http://foo.bar.bbb/bbb/ / commitid.txt。这使得动态查找URL变得难以实施。

String foo(String jobName) {
    // Some work...
    String commitIDURL = "";
    if (jobName.equals("AAA")) {
        commitIDURL = // Some rule to decide URL;
    }
    else if (jobName.equals("BBB") {
        commitIDURL = // Some other rule to decide URL;
    }
    else // Some more URLS
    String commitIDContent = restTemplate.getForObject(commitIDURL, String.class);
    // Upload commitID to db ...
    Upload(jobName, commitIDContent, and more information needed)...;
}

在这里,我想自动读取commitid.txt的内容,并自动使用EnvInject将其另存为env变量(例如COMMIT_ID),这样我就可以轻松获取其值,而不用硬编码URL。 非常感谢!

0 个答案:

没有答案