gpt4 book ai didi

groovy - 如何从排队的作业中检索构建参数?

转载 作者:行者123 更新时间:2023-12-02 06:32:01 25 4
gpt4 key购买 nike

我想编写一个系统 groovy 脚本,用于检查 Jenkins 中的排队作业,并提取作业计划时提供的构建参数(以及作为奖励的构建原因)。想法?

具体来说:

def q = Jenkins.instance.queue
q.items.each { println it.task.name }

检索排队的项目。我一生都无法弄清楚构建参数的位置。

我得到的最接近的是:

def q = Jenkins.instance.queue
q.items.each {
println("${it.task.name}:")
it.task.properties.each { key, val ->
println(" ${key}=${val}")
}
}

这让我明白了:

4.1.next-build-launcher:
com.sonyericsson.jenkins.plugins.bfa.model.ScannerJobProperty$ScannerJobPropertyDescriptor@b299407=com.sonyericsson.jenkins.plugins.bfa.model.ScannerJobProperty@5e04bfd7
com.chikli.hudson.plugin.naginator.NaginatorOptOutProperty$DescriptorImpl@40d04eaa=com.chikli.hudson.plugin.naginator.NaginatorOptOutProperty@16b308db
hudson.model.ParametersDefinitionProperty$DescriptorImpl@b744c43=hudson.mod el.ParametersDefinitionProperty@440a6d81
...

最佳答案

队列元素本身的 params 属性包含一个字符串,该字符串带有属性文件格式的参数 -- key=value 带有多个由换行符分隔的参数。

def q = Jenkins.instance.queue
q.items.each {
println("${it.task.name}:")
println("Parameters: ${it.params}")
}

产量:

dbacher params:
Parameters:
MyParameter=Hello world
BoolParameter=true

我不是 Groovy 专家,但是在探索 Jenkins 脚本界面时,我发现以下函数非常有用:

def showProps(inst, prefix="Properties:") {
println prefix
for (prop in inst.properties) {
def pc = ""
if (prop.value != null) {
pc = prop.value.class
}
println(" $prop.key : $prop.value ($pc)")
}
}

def showMethods(inst, prefix="Methods:") {
println prefix
inst.metaClass.methods.name.unique().each {
println " $it"
}
}

showProps 函数显示队列元素具有另一个名为 causes 的属性,您需要对其进行更多解码:

causes : [hudson.model.Cause$UserIdCause@56af8f1c] (class java.util.Collections$UnmodifiableRandomAccessList)

关于groovy - 如何从排队的作业中检索构建参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32876496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com