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