【问题标题】:How to continue a Jenkins build even though a build step failed?即使构建步骤失败,如何继续 Jenkins 构建?
【发布时间】:2012-05-02 20:46:23
【问题描述】:

我正在使用 Jenkins 的 Phing 构建脚本,并希望在作业中端到端运行它并捕获所有报告。问题是它停止构建失败的构建步骤。有没有办法或插件即使在失败时也能继续工作?

谢谢

【问题讨论】:

标签: continuous-integration build-process jenkins phing


【解决方案1】:

我对 Phing 了解不多,但由于它基于 Ant,如果您正在执行的构建步骤具有“failonerror”属性,您应该能够将其设置为 false,这样整个构建就不会如果步骤返回错误,则失败。

【讨论】:

    【解决方案2】:

    是的,在你的管道脚本中使用 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 命令运行这些测试,请考虑使用“|| true”后缀运行 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
    

    【讨论】:

      猜你喜欢
      • 2022-11-06
      • 2019-11-25
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 2019-07-08
      相关资源
      最近更新 更多