【问题标题】:Create a Job DSL that creates a new job in the same View创建一个 Job DSL,在同一个 View 中创建一个新作业
【发布时间】:2014-02-25 17:31:10
【问题描述】:

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

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

这样的DSL:

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

【问题讨论】:

  • 如果您使用 jenkins 接口手动创建作业并查看配置,例如localhost:8080//config.xml 只要其中有一个详细说明视图的部分,您就可以使用 dsl github.com/jenkinsci/job-dsl-plugin/wiki/… 中的配置块添加它
  • 你在使用视图插件吗?
  • 我在 config.xml 中找不到视图部分。
  • 我已经安装了嵌套视图插件。如果有帮助,我可以安装其他插件。
  • 作业 XML 没有它所属的任何视图的任何条目,因此您将无法使用 DSL。您可以使用 REST API 将其添加到 issues.jenkins-ci.org/browse/JENKINS-8927 中,或者使用基于正则表达式的视图并相应地命名您的作业 wiki.jenkins-ci.org/display/JENKINS/View+Job+Filters

标签: plugins jenkins jenkins-plugins jenkins-job-dsl


【解决方案1】:

如果你这样做:

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

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

更新

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      解决方法:

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

      您可能还想查看this 的答案。

      【讨论】:

        猜你喜欢
        • 2010-12-31
        • 1970-01-01
        • 1970-01-01
        • 2015-12-04
        • 1970-01-01
        • 2019-09-02
        • 2017-12-17
        • 2013-03-29
        • 1970-01-01
        相关资源
        最近更新 更多