例如,我想列出在" Foo"中定义的奴隶。工作:Project_Foo1,Project_Foo2等......
def matchedJobs = Jenkins.instance.items.findAll { job ->
job.name =~ /Foo/
}
我可以列出项目名称,但是如何获取从属名称?
答案 0 :(得分:2)
一些时髦的方式
SELECT expand($Result)
let $Cri = ( SELECT * FROM Cri WHERE libelle = "abbaye"),
$Ontologie = ( SELECT * FROM Ontologie WHERE libelle = "BlocModal_3_VISITE"),
$Result = ( SELECT * FROM $Ontologie WHERE $Cri.out().@rid contains out().out().out().@rid)
答案 1 :(得分:0)
在FindAll闭包中,您的job
变量应该包含TopLevelItem
个实例(根据javadoc)。
所以你应该做的只是job.allJobs
来获取一系列子工作(javadoc),然后是getName()
方法。
最后,像
def matchedJobs = Jenkins.instance.items.findAll { job ->
job.name =~ /Foo/
}
def childrenJobNames = matchedJobs.allJobs*.name
应该可以工作,但我没有Jenkins实例来测试它。
答案 2 :(得分:0)
您可以通过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()