5

我正在尝试使用 DSL 工作插件在 Jenkins 中创建新工作。有没有办法在创建作业时指定视图?

例如,我有一个视图NewJobsView。我想创建一个名为 DSL 的作业dsl-job,它正在创建一个新作业“dsl-created-job1”

像这样的DSL:

job {
    name 'dsl-created-job1'
    //view 'NewJobsView'
    //or view {...} to specify the view
}
4

3 回答 3

3

如果你这样做:

def myJob=job{name('test1')}
def myJob2=job{name('test2')}
view {
  name('view1')
  jobs{
     name(myJob.name)
    name(myJob2.name)
  }   
}

甚至在视图中使用正则表达式。

更新

关于讨论。嵌套视图只是一种不同的视图。作业 config.xml 没有对视图的引用,因为 jenkins 有一个不同的抽象:视图对作业的引用。

于 2014-10-25T14:39:37.090 回答
1

我得到了这个工作。它创建一个作业,然后创建一个视图并将该作业添加到视图中。此解决方案每次都重新创建视图。您可以使用 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()
    }
}
于 2014-11-14T15:09:04.267 回答
0

如果您只想将生成的作业放置在现有视图中,而不必在数十个作业中查找它并且不必每次都重新创建视图,这是一个非常简单的解决方法:

解决方法:

  • 删除你的 DSL 生成的作业
  • 从 DSL复制(或记住)生成作业的确切名称
  • 转到您希望新工作所在的视图
  • 创建一个与从 DSL 生成的新作业同名的新空作业。
  • 保存新的空作业时检查添加到当前视图
  • 运行 DSL 脚本,它将使用正确的内容更新您现有的(空)作业,同时将其保留在所需的视图中。

您可能还想检查这个答案。

于 2017-10-19T11:06:24.987 回答