根据作业详细信息从 jenkins GUI 中查找视图名称

Find view name from jenkins GUI given the job details

我有几百个 jenkins 作业,它们都根据不同的项目分为不同的视图。所以,我在 Jenkins 中已经有大约 30 多个视图。我的问题是,给定一个 jenkins 作业名称,我可以找出它属于哪个视图。

我认为这是不可能的。请记住,虽然您的配置可能有一个 1:1 映射,但通过正则表达式匹配或明确选择,作业完全有可能适合许多视图。

此外,根据配置,用户可以创建自己的视图。这可能会引入更多噪音...

仅使用 Jenkins UI 是不可能的。但是你可以用 Jenkins script console.

来做到这一点

这是一个 groovy 样本。一项工作可以包含在一个、两个或多个视图中。所以,基本上,您可以遍历所有视图并检查您的作业是否属于具体视图。设置您的作业名称并在您的脚本控制台中执行它:

job_name = 'YOUR_JOB_NAME'
found_views = []

views = hudson.model.Hudson.instance.views

for (view in views){
  for (job in view.items) {
    if (job.name.equals(job_name)){
      found_views << view.name
    }
  }
}

println String.format("Job '%s' is included to: %s", 
                  job_name, 
                  found_views.sort().join(', '))

// If such job exists, you will have something like this:
// Job 'YOUR_JOB_NAME' is included to: All, ...