根据作业详细信息从 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, ...
我有几百个 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, ...