即使构建步骤失败,如何继续Jenkins构建?

时间:2012-05-02 20:46:23

标签: continuous-integration build-process jenkins phing

我正在使用与Jenkins的Phing构建脚本,并希望在工作中端到端地运行它并捕获所有报告。问题是它停止构建失败的构建步骤。是否有一种方法或插件可以在失败时继续工作?

谢谢

2 个答案:

答案 0 :(得分:1)

我对Phing知之甚少,但由于它基于Ant,如果你正在执行的构建步骤有一个“failonerror”属性,你应该可以将它设置为false,这样整个构建就不会如果步骤返回错误,则失败。

答案 1 :(得分:0)

是的,在管道脚本中使用try,catch块

示例:

try {
    // do some stuff that potentially fails
} catch (error) {
    // do stuff if try fails
} finally {
    // when you need some clean up to do
}

或者,如果您使用sh命令来运行这些测试,请考虑使用" ||运行sh脚本真"后缀,这告诉linux sh脚本以结果代码0退出,即使您的实际命令退出并带有退出代码。

示例:

stage('Test') {
    def testScript = ""
    def testProjects = findFiles(glob: 'test/**/project.json')

    if (!fileExists('reports/xml')) {
        if (!fileExists('reports')) {
            sh "mkdir reports"
        }
        sh "mkdir reports/xml"
    }

    for(prj in testProjects) {
        println "Test project located, running tests: " + prj.path
        def matcher = prj.path =~ 'test\\/(.+)\\/project.json'

        testScript += "dotnet test --no-build '${prj.path}' -xml 'reports/xml/${matcher[0][1]}.Results.xml' || true\n"
    }

    sh testScript