java - Jenkins 集群中执行者的数量

标签 java jenkins groovy jenkins-pipeline

我有 Jenkins 集群,有 1-Master with 2-Executor and 1-Agent with 2-Executor现在如何使用 java 或 groovy 脚本获取 Jenkins 集群中执行程序的总数?

最佳答案

如果您有权访问脚本控制台,则可以运行如下命令:

final jenkins = Jenkins.instance

jenkins.computers.inject(0) { acc, item ->
  acc + item.numExecutors
}

如果您在沙盒管道中运行此程序,则必须由管理员在进程内脚本批准中将方法列入白名单(或通过使用白名单的插件),网址为 http://jenkinsUrl/scriptApproval/ 。由于JENKINS-26481,您现在无法使用inject ,但您的管道脚本可能如下所示:

final jenkins = Jenkins.instance

int executorCount = 0
for (def computer in jenkins.computers) {
    executorCount += computer.numExecutors
}

// Rest of pipeline

如果您的管道不在沙箱中运行,您可能无需列入白名单即可访问这些对象。

关于java - Jenkins 集群中执行者的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43284025/

相关文章:

java - 如何避免覆盖java中的按钮文本?

c# - 我必须做什么才能使断言不再阻止自动化测试?

Jenkins 中的 Maven 包装器

groovy - 将 Groovy 脚本结果写入文件

Grails with Criteria 测试

java - jodd框架使用@transaction注解时如何回滚事务?

Java,一种使用保留字的方法

java - Javafx 中的选择性子变换

java - Jackson Databind 类路径问题

docker - 无法在Jenkins中运行Groovy sh命令