当前位置: 首页 > 面试题库 >

哪个URL将获得上一个Jenkins作业的状态码(结果)?

常茂
2023-03-14
问题内容

我想知道是否有人知道需要什么URL(作为GET或POST),它将获取上一个Jenkins作业的状态代码(结果)(当调用GET请求的客户端不知道build#时)?我只想能够检测结果是RED还是GREEN
/ BLUE。

我有此代码示例,但我需要对其进行调整,以使其适用于Jenkins(如上所述):

public class Main {
    public static void main(String[] args) throws Exception {
        URL url = new URL("http://localhost/jenkins/api/xml");
        Document dom = new SAXReader().read(url);
        for( Element job : (List<Element>)dom.getRootElement().elements("job")) {
            System.out.println(String.format("Name:%s\tStatus:%s",
                job.elementText("name"), job.elementText("color")));
        }
    }
}

一旦找到答案,我将分享一个完整的示例。我想创建一个工作,以收集包含20多个工作的测试套件中的信息,并通过电子邮件报告所有这些工作。


问题答案:

您可以使用符号描述符lastBuild

http://localhost/jenkins/job/<jobName>/lastBuild/api/xml

result元素包含描述生成的结果字符串。



 类似资料:
  • 我有一个Jenkins管道作业,它需要监控另一个Jerkins作业(比如JobA)当前构建,并在当前管道阶段发布状态(构建状态:成功或失败)。如何实现这一点。不会从管道作业触发作业(JobA)。它将独立运行。从管道作业中,需要获取作业A的状态。

  • 问题内容: 我想创建一个Jenkins作业来启动其他Jenkins作业。那将非常容易,因为Jenkins模板项目插件允许我们创建一个类型为“使用来自另一个项目的构建器”的构建步骤。但是,使我的情况更难的是,我必须在其他计算机上开始Jenkins的工作。有什么标准方法可以做到吗? 问题答案: 万一您只想触发Job的新版本,您有多种方法可以完成它 您可以使用远程访问API并触发请求以从源Job构建目标

  • 我有一个相当简单的管道(代码比文字更好): 我的问题是,对于给定的窗口,我必须根据以下内容计算新的状态: 上一个状态(即上一个窗口的计算状态) 接收的事件 我希望避免调用外部服务来获取上一个状态,而是获取上一个窗口的状态。有可能吗?

  • 我们有一个项目,其中我们有几个Jenkins作业:一种类型的作业运行交付(a), 一个只进行编译和单元测试的程序(B) 和 运行集成测试、静态代码分析等(C)的人。 我们在四个 Jenkins 节点(主节点三个从节点)上运行,我们的作业是声明性管道作业的混合,并在 Jenkins 作业中手动单击。 我们一次只想为每个节点运行一个集成测试构建。然而,我们希望运行尽可能多的交付(A)和代码质量(B)构

  • 我目前正在使用全局构建统计插件,显示我们的工作状态在一个良好的格式图表。

  • 我需要从一个上游作业生成可变数量的作业。AFAIK,没有插件可以做到这一点。最近的一个是多任务插件(https://wiki.jenkins-ci.org/display/JENKINS/Multijob插件)。因此,我想创建一个构建步骤,使用Jenkins API(REST、groovy或Jenkins cli)之一来触发这些构建。但是,如果我这样做,这些构建将变得“分离”(意味着它们没有上游作