作业DSL - 如何配置postBuildSteps以便maven在构建成功时启动

时间:2014-09-25 14:20:03

标签: jenkins jenkins-job-dsl

在作业dsl中,只有在构建成功时,才能为maven作业配置postBuildSteps。我看到postSuccessfulBuildSteps仅适用于发布作业。

3 个答案:

答案 0 :(得分:4)

您必须使用“configure”块将“custom”<runPostStepsIfResult>设置附加到config.xml

这对我有用:

job(type: Maven) {
    name('MyMavenJob')
    goals('install')

    preBuildSteps {
        shell('#!/bin/bash\n' +
              'echo "PRE BUILD SCRIPT"\n' +
              'env | sort\n' +
              'echo "PRE BUILD END"\n')
    }

    postBuildSteps {
        shell('#!/bin/bash\n' +
              'echo "POST BUILD SCRIPT"\n' +
              'env | sort\n' +
              'echo "POST BUILD END"\n')
    }

    // Append <runPostStepsIfResult> at the end of the xml
    //    (which will be just after the closing </postbuilders> tag)
    // "it" is a groovy.util.Node representing the
    //    root <project> element of config.xml.
    configure { it <<
        'runPostStepsIfResult' {
            name('SUCCESS')
        }
    }
}

一般情况下,如果您需要添加Job DSL不支持的XML,您可以通过在Jenkins中手动配置作业找到所需内容,然后在Jenkins上查看该作业的结果config.xml - 主盘。这通常位于${JENKINS_HOME}/jobs/job-name/config.xml

http://job-dsl.herokuapp.com/上的job-dsl playground是一个测试更改的有用位置,直到你获得的东西与手动设置时Jenkins在job / job-name / config.xml文件中的作用相匹配。

答案 1 :(得分:1)

这有效:

postBuildSteps("SUCCESS") {
    ...
}

答案 2 :(得分:0)