jenkins - 如何以编程方式确定哪个 Jenkins 从节点已用于运行构建?

标签 jenkins continuous-integration

假设我已经配置了一个 Jenkins 作业,它可以在几个 Jenkins 从属节点(例如 Node1、Node2、Node3 等)上运行。当构建开始时,Jenkins 将选择一个可用的 Jenkins Slave 来运行构建。

对于已完成或当前正在运行的构建,如何以编程方式确定哪个 Jenkins 从节点已用于运行构建?

最佳答案

您可以使用Jenkins REST API假设您知道构建号,则查询现有构建:

http://jenkins:8080/job/JOB_NAME/100/api/json?pretty=true

builtOn 字段显示正在运行/运行构建的从属设备的名称。

要仅检索 JSON 构建信息的几个字段,请使用 tree 参数:

http://jenkins:8080/job/JOB_NAME/100/api/json?tree=id,timestamp,builtOn&pretty=true

这将返回类似以下内容:

{
  "id" : "2014-12-01_06-18-17",
  "timestamp" : 1417443497917,
  "builtOn" : "sdev05"
}

Jenkins UI 中的大多数页面底部都有一个 REST API 链接,表明它们公开可以通过编程方式查询的信息。

关于jenkins - 如何以编程方式确定哪个 Jenkins 从节点已用于运行构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27207458/

相关文章:

jenkins - 如何从 Jenkins 中删除用户

jenkins - 在 Jenkins 管道中解析 XML 文件

docker - 避免数据库ip,用户并使用docker传入jenkinsfile

linux - Jenkins --> JUnit 在 Linux 上抛出 OutOfMemoryError PermGen

Jenkins 从同一提交开始重复构建多分支管道

maven - 将 sonarqube 与 Jenkins 集成

maven - Mark Jenkins 根据测试/集成测试失败构建红色/黄色

continuous-integration - 持续集成构建配置

continuous-integration - 我该如何解决此警告 : CoreSimulator is attempting to unload a stale CoreSimulatorService job

msbuild - 如何使用持续集成在 TFS 2010 上使用 msbuild 打包并运行测试