在我们的Jenkins主机上,一个多配置项目用于在许多实际工作的从站上传播高度并行的任务。
现在我想列出在特定从属节点上运行的所有作业。有没有办法实现这个目标?我只看到大表中一个矩阵父作业的所有矩阵子作业。或者我可以列出单个子作业的历史记录。但是如果我想获得与运行作业的节点的连接,我总是要检查日志。
答案 0 :(得分:3)
答案 1 :(得分:2)
现在我想列出在特定从属节点上运行的所有作业。
我没有找到任何现有的插件来解决问题。但是你可以使用Jenkins Script Console自动完成它。 这是一个简单的groovy脚本,它遍历job的构建并检查该构建是否为built on具体节点:
def jobs = hudson.model.Hudson.instance.items
nodeName = 'YOUR_NODE_NAME'
jobs.each { job ->
urls = []
job.builds.each { build ->
nodeName == build.builtOnStr && urls << build.absoluteUrl
}
urls && println("${job.name}\n\t${urls.sort().join('\n\t')}")
}
示例输出:
JOB1
JENKINS_URL/job/JOB1/11/
JOB2
JENKINS_URL/job/JOB2/59/
JENKINS_URL/job/JOB2/60/
JENKINS_URL/job/JOB2/61/
...
如果您想更进一步,可以使用它来准备一些可点击的HTML报告。首先想到的是发送带有Email-ext plugin的电子邮件。
注意:该脚本不适用于nodeName = 'master'
。这应该是预期的'因为主,实际上,不是节点。
答案 2 :(得分:1)
我使用脚本控制台
解决了这个问题for (item in hudson.model.Hudson.getInstance().getItems()) {
if (item instanceof hudson.model.FreeStyleProject) {
if (item.getAssignedLabel() != null && item.getAssignedLabel().getName() == 'master') {
println(item.getName() + " " + item.getAssignedLabel())
}
}
}