【问题标题】:groovy script template is failing after changing the jenkins job folder using folder plugin使用文件夹插件更改詹金斯作业文件夹后,groovy 脚本模板失败
【发布时间】:2016-07-04 19:48:36
【问题描述】:
     <% def printStatusRecursively(cause) {
    if (cause.class.toString().contains("UpstreamCause")) {
        def projectName = cause.getUpstreamProject() 
        def number = cause.getUpstreamRun().number 
        upstreamJob = hudson.model.Hudson.instance.getItem(projectName)
        upbuild = upstreamJob.getBuildByNumber(number)%>

        <TR>
        <TD>${projectName}</TD>
        <TD>${upbuild.result}</TD>
        <TD><A href="${rooturl}${upbuild.url}">${rooturl}${upbuild.url}</A>     </TD>
        </TR>
        <%
        for (upCause in cause.upstreamCauses) {
          printStatusRecursively(upCause)
    }        }
    }%>
<%
for (cause in build.causes)
{
  printStatusRecursively(cause)
}%> 

我使用类似于以下链接“https://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/resources/hudson/plugins/emailext/templates/groovy-html.template”的 grrovy 脚本。我将它用作我的 jenkins email-ext 插件的一部分,它对许多工作都很成功,但是突然当我使用文件夹插件将工作移动到 a 文件夹时,它开始失败并出现以下错误: 模板渲染期间引发异常:无法在空对象 java.lang.NullPointerException 上调用方法“getBuildByNumber():”。

请帮帮我

【问题讨论】:

    标签: jenkins groovy


    【解决方案1】:

    你应该使用jenkins.model.Jenkins.getItemByFullName(fullName) 其中fullName 是类似foldername/jobname 的字符串 - 作业的分层名称,其中包括用斜线@​​987654326@ 分隔的所有父文件夹(如文件系统路径)。 getItemByFullName 适用于文件夹内部和外部的作业。

    假设我有以下结构:

    Jenkins
     |-Job_A
     |-Folder
        |-Job_B
        |-Nested_Folder
           |-Job_C
    

    代码示例:

    def job
    def j = jenkins.model.Jenkins
    
    //To get `Job_A`:
    job = j.getItemByFullName('Job_A')
    
    //To get `Job_B`:
    job = j.getItemByFullName('Folder/Job_B')
    
    //To get `Job_C`:
    job = j.getItemByFullName('Folder/Nested_Folder/Job_C')
    

    有关 Jenkins wiki 的更多信息:Hierarchical projects support

    【讨论】:

    • 有一个类似的问题,这解决了它。我认为这应该被标记为正确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多