例如,我想列出在“Foo”作业中定义的从站:Project_Foo1、Project_Foo2 等...
def matchedJobs = Jenkins.instance.items.findAll { job ->
job.name =~ /Foo/
}
我可以列出项目名称,但如何获取从属名称?
例如,我想列出在“Foo”作业中定义的从站:Project_Foo1、Project_Foo2 等...
def matchedJobs = Jenkins.instance.items.findAll { job ->
job.name =~ /Foo/
}
我可以列出项目名称,但如何获取从属名称?
一些时髦的方式
def matchedJobs = Jenkins.instance.items.findAll{ job ->
job.name =~ /test/ && job.getAssignedLabel() != null
}.collect { job ->
"${job.name}: ${job.getAssignedLabel().getNodes().collect({it.getNodeName()==""?"master":it.getNodeName()}).join(',')}\n"
}.each { slaves ->
println slaves
}
可以通过 获取项目的标签表达式getAssignedLabel()
。并通过Label获取满足标签表达式的节点getNodes()
。
def matchedJobs = Jenkins.instance.items.findAll { job ->
if(job.name =~ /Foo/) {
for(Node node : job.getAssignedLabel().getNodes()) {
println node.getNodeName()
}
}
}
getNodeName()
如果它是主人,则返回空字符串。
http://javadoc.jenkins-ci.org/hudson/model/AbstractProject.html#getAssignedLabel() http://javadoc.jenkins.io/hudson/model/Label.html#getNodes() http://javadoc。 jenkins.io/hudson/model/Node.html#getNodeName()