我发现了以下有关创建作业和使用DSL插件添加到新创建的视图的问题。
Adding job to newly created view.
如何使用DSL插件将创建的作业添加到现有视图?我在文档中找不到任何提示。也许很明显我无法看到解决方案?
虽然我读过,如果视图已经存在,创建视图将导致重新创建。对于这种观点下的现有项目意味着什么?
感谢您的帮助。
答案 0 :(得分:5)
您无法将作业添加到不受作业DSL管理的视图。但DSL管理的视图可以包含不由DSL管理的作业。
例如,您可以手动管理名为project-a
的作业,并使用由DSL管理的名为project-b
的作业。由DSL管理的视图可以包含两个作业。
job('project-b') {
}
listView('project-view') {
jobs {
name('project-a')
name('project-b')
}
}
无法使用Jenkins API将作业从DSL脚本添加到视图中。作业必须存在才能添加到视图中。但是,当执行脚本时,不会立即创建作业。所有DSL项目都是在处理完脚本后创建的。
如果您不希望使用DSL管理视图(但您应该),则可以尝试使用基于过滤器的视图配置。例如。包括名称与正则表达式匹配的所有作业。或者您可以使用View Job Filters Plugin创建更复杂的过滤器。
答案 1 :(得分:2)
感谢daspilker,我提供了一个可接受的解决方案。
- >视图过滤器
由于DSL创建的作业无法添加到非DSL创建的视图中,因此我设置了两个视图过滤器。
一个正则表达式视图过滤器,用于从默认视图中排除DSL创建的作业(如果您不创建DSL视图并将作业添加到其中,则会创建作业) - 选择默认视图 - >编辑视图 - >添加作业过滤器 - > regexpJobFilter
视图上的一个regexp视图过滤器,您要在其中收集DSL创建的作业。
目前,这很好用。我在手动管理的视图中创建了DSL作业。
但正如daspilker所说:
如果您不希望使用DSL管理视图(但您应该)
也许经验表明,我必须切换到DSL托管视图。
答案 2 :(得分:0)
我刚刚找到了解决这个问题的一个非常简单的方法 - 尽管我们应该记住,@ daspilker的答案显示了管理作业和视图的正确方法。只是对我来说这太复杂了(或者太懒了)。
我刚刚来到这个解决方案,同时记住我曾经通过运行具有相同目标名称的DSL作业从视图中删除(覆盖)现有作业,但至少它保留在原始视图中:)