我正在尝试使用 DSL 工作插件在 Jenkins 中创建新工作。有没有办法在创建作业时指定视图?
例如,我有一个视图NewJobsView
。我想创建一个名为 DSL 的作业dsl-job
,它正在创建一个新作业“dsl-created-job1”
像这样的DSL:
job {
name 'dsl-created-job1'
//view 'NewJobsView'
//or view {...} to specify the view
}
我正在尝试使用 DSL 工作插件在 Jenkins 中创建新工作。有没有办法在创建作业时指定视图?
例如,我有一个视图NewJobsView
。我想创建一个名为 DSL 的作业dsl-job
,它正在创建一个新作业“dsl-created-job1”
像这样的DSL:
job {
name 'dsl-created-job1'
//view 'NewJobsView'
//or view {...} to specify the view
}
如果你这样做:
def myJob=job{name('test1')}
def myJob2=job{name('test2')}
view {
name('view1')
jobs{
name(myJob.name)
name(myJob2.name)
}
}
甚至在视图中使用正则表达式。
更新
关于讨论。嵌套视图只是一种不同的视图。作业 config.xml 没有对视图的引用,因为 jenkins 有一个不同的抽象:视图对作业的引用。
我得到了这个工作。它创建一个作业,然后创建一个视图并将该作业添加到视图中。此解决方案每次都重新创建视图。您可以使用 name('jobname1') 或 names('jobname1','jobname2') 添加多个作业。您还可以以相同的方式添加按名称引用它们的现有作业。
job{
name('DSL JOB')
description('This is a Test Job')
triggers{
cron('H/20 7-20 * * 1-5')
}
}
view(type:ListView){
name('DSL-JOBS')
description('Test View of DSL Job')
filterBuildQueue()
filterExecutors()
jobs{
name('DSL JOB')
}
columns{
status()
weather()
name()
lastSuccess()
lastFailure()
lastDuration()
buildButton()
lastBuildConsole()
}
}
如果您只想将生成的作业放置在现有视图中,而不必在数十个作业中查找它并且不必每次都重新创建视图,这是一个非常简单的解决方法:
您可能还想检查这个答案。