我想使用Jenkins DSL创建一个Jenkins文件夹。在创建文件夹时,我想添加一些自定义属性。我无法使用以下语法添加任何属性。应该是什么语法
folder('example-2') {
displayName("testFolder")
description("desc")
properties{
'key','value'
}
}
答案 0 :(得分:1)
这可能是因为定义文件夹属性的功能已从开源Folders Plugin中删除,现在只能在Cloudbees Enterprise Jenkins中使用。
我们决定将文件夹的基本功能发布为GitHub上托管的开源插件,就像其他Jenkins插件一样。这个4.0版本本身功能齐全,但Jenkins Enterprise(在Folders Plus插件中)保留了一些高级功能:Move动作,一些健康报告和图标,环境变量属性,从嵌套作业列表视图列中拉取信息,以及限制此文件夹中子项的种类选项。核心文件夹功能以及所有API和扩展点都可以在开源插件中找到。
阅读完整公告here。
我自己一直在努力满足对文件夹级属性的需求,所以我已经开始使用自己的插件来满足这种需求。我称之为Folder Properties Plugin。如果您遇到任何问题,请在Git仓库中提交,如果您有任何疑问,可以将它们发布到插件的维基页面。
我希望这会有所帮助。
答案 1 :(得分:0)
public static void addFolderVariable(Folder folder, String variableName, String variableValue) {
String elementName = 'com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty'
String variables = "$variableName=$variableValue"
folder.with {
configure {
// Get previous values
Node node = it / 'properties' / "$elementName" / 'properties'
if (node.value()) {
// Join them together
String existingVariables = node.value()
variables = "$existingVariables\n$variables"
}
// Assign it
it / 'properties' / "$elementName" / 'properties' << "$variables"
}
}
}
这似乎适用于企业版。 (对不起,我不是一个Groovy开发人员,你可以看到)
答案 2 :(得分:0)
您在这里:
folder('example-2') {
displayName("testFolder")
description("desc")
properties{
configure {
it / 'properties' / key1 << 'value1'
it / 'properties' / key2 << 'value2'
}
}
}
该文件夹的属性documentation为空,这表明它不支持下面的任何内置语法。使用configure
直接使用闭包来操纵XML。
您可以使用其出色的playground测试任何DSL。