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

如何使用Java API在Jenkins中了解Jenkins构建执行器是否空闲

胡云瀚
2023-03-14
问题内容

我想通过使用java-jenkins API来了解jenkins中的生成执行器是否空闲(空闲或主节点中正在运行任何作业)。我的要求是这样的。

  1. 如果有任何执行者有空,我必须触发詹金斯工作,否则我将等到他们可用。
  2. 为此,我必须使用Jenkins的API
  3. 我必须用Java完成所有这些实现

请帮助我哪种API方法将赋予执行者身份。执行者是下图中突出显示的内容:


问题答案:

用于检查从站是否在线和空闲的系统常规脚本。

import hudson.model.Node
import hudson.model.Slave
import jenkins.model.Jenkins

Jenkins jenkins = Jenkins.instance
def jenkinsNodes =jenkins.nodes

for (Node node in jenkinsNodes) 
{
    // Make sure slave is online
    if (!node.getComputer().isOffline()) 
    {           
        //Make sure that the slave busy executor number is 0.
        if(node.getComputer().countBusy()==0)
        {
           ...Do somthing...
        }
    }
}


 类似资料:
  • 我试图通过Jenkins2.54在构建中触发一个shell命令。我在过去运行过这个,但决定重建我的mac“干净”,没有时间限制… 在后台,我使用Node.js应用程序在Agile Central(Rally)中构建应用程序--所有这些都很好,甚至我使用的shell命令也在shell中运行(准确地说是Fish)。 据我所知,我已经安装了所有的依赖,因为这工作时运行从cmd线… 正如shell中直接提

  • SonarQube版本=5.2 所以我注意到我的应用程序在声纳方面没有通过质量门,但构建仍然是绿色的。 我在谷歌上搜索了如何使sonar无法构建,并得到了一个名为“构建断路器”的插件的结果,该插件因我使用的版本而被贬低(http://docs.sonarqube.org/display/plug/build+breaker+plugin)。我找不到关于如何在这个版本中实现相同的构建中断行为的信息。

  • 问题内容: 我正在尝试创建一个WCF REST客户端,该客户端将与Jenkins通信并从XML文件创建作业,然后构建该作业。我的理解是,您可以使用Jenkins做到这一点。 有人可以提供一些命令,您可以在浏览器的地址栏上键入这些命令来创建和构建作业吗?即:沿着这些思路。 问题答案: 请参阅Jenkins API Wiki页面(包括末尾的注释)。您可以使用Jenkins本身提供的文档来填补空白。例如

  • 问题内容: 我当时在考虑在我的Jenkins构建工作中使用Groovy脚本,因为我有一些条件要检查,可能需要访问Jenkins API。 是否有可能从Groovy脚本中找出触发构建的人员或原因?SCM更改,另一个项目或用户。我刚刚开始阅读有关Groovy和Jenkins API的文章。 我想检查以下条件并相应地构建。一些伪代码: 该项目应建立在每一个SCM更改的基础上,但是只有在版本增加的情况下才

  • 我在考虑在Jenkins中使用Groovy脚本进行构建工作,因为我有一些条件需要检查是否需要访问JenkinsAPI。 是否有可能从Groovy脚本中找出谁或什么触发了构建?SCM更改、另一个项目或用户。我刚刚开始阅读一些关于Groovy和JenkinsAPI的内容。 我想检查以下条件并相应地构建。一些伪代码: 项目应基于每个SCM更改,但仅在版本增加时标记和发布。当一个构建被另一个项目触发时,它

  • 问题内容: 我希望根据我的构建触发方式向我的Jenkinsfile添加一个条件阶段。目前,我们的设置是通过以下方式触发的: 分支索引中获取的git repo更改 用户使用用户界面中的“立即构建”按钮手动触发构建。 有什么方法可以运行不同的流水线步骤,具体取决于其中哪些操作触发了构建? 问题答案: 以下代码可以确定用户是否已启动管道或计时器/其他触发器: