我正在将 Jenkins 作业从手动配置转换为 DSL,这意味着我正在尝试创建一个 DSL 脚本来创建当前的作业。
该作业当前已参数化,其中一个参数属于“复制工件的构建选择器”类型。我可以在作业 XML 中看到它是 copyartifact 插件,特别是我需要使用 BuildSelectorParameter。
然而,Jenkins DSL API 没有关于使用这个插件来设置参数的指导——它只是帮助使用它来创建一个构建步骤,这不是我需要的。
在 API 中的参数选项下,我也找不到与此相关的任何内容。
我想在 DSL 种子脚本中包含一些内容,它将在生成的作业中创建一个与图像中的参数匹配的参数。
parameter
如果我需要使用 configure 块,那么欢迎使用任何提示,因为对于初学者来说,关于此的文档非常无用。
最佳答案
我没有找到其他方法来设置构建选择器参数,而是使用配置块。这是我用来设置它的:
freeStyleJob {
...
configure { project ->
def paramDefs = project / 'properties' / 'hudson.model.ParametersDefinitionProperty' / 'parameterDefinitions'
paramDefs << 'hudson.plugins.copyartifact.BuildSelectorParameter'(plugin: "copyartifact@1.38.1") {
name('BUILD_SELECTOR')
description('The build number to deploy')
defaultSelector(class: 'hudson.plugins.copyartifact.SpecificBuildSelector') {
buildNumber()
}
}
}
}
为了达到这个目的,我使用构建选择器参数手动创建了一个作业。然后在 jenkins 下查找作业的 XML 配置以查看相关部分,在我的情况下:
<project>
...
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
...
<hudson.plugins.copyartifact.BuildSelectorParameter plugin="copyartifact@1.38.1"
<name>BUILD_SELECTOR</name>
<description></description>
<defaultSelector class="hudson.plugins.copyartifact.SpecificBuildSelector">
<buildNumber></buildNumber>
</defaultSelector>
</hudson.plugins.copyartifact.BuildSelectorParameter>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
...
</project>
使用
configure
复制它条款你需要了解以下几点:job
节点。 /
运算符将返回具有给定节点的节点的子节点,如果它不存在则创建。 <<
运算符会将作为右侧操作数给出的节点附加到左侧操作数。 myNodeName(attrributeName: 'attributeValue')
关于groovy - 使用 Jenkins DSL 添加参数 "Build Selector for Copy Artifact",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789477/