2012-10-25 66 views
0

我最近开始研究持续集成系统,并开始学习如何使用Buildbot。使用编译的java代码修改Buildbot退出代码

我有一个buildslave可以在每次提交时运行,并且我希望在构建完成之后添加一个新步骤来解析某些数据文件,并根据结果触发构建通过/失败。

buildSteps.addStep(shell.ShellCommand(description=["File Parser"], workdir=dataDirectory, command=["call", "ant", "ParseTest"])) 

在步骤结束时,输出类似于此:

[java] Java Result: 1 

    BUILD SUCCESSFUL 
    Total time: 38 seconds 
    program finished with exit code 0 

在我使用System.exit(1)来表示的故障和Java代码System.exit(0)代表成功。

所以我的问题是,如何将实际退出代码更改为非零值,以便Buildbot将其识别为失败的构建?

回答

0

我不知道buildbot,但ant java task的failonerror属性默认设置为false。
因此,如果Java以非0的返回码退出,那么要获得BUILD FAILED,必须将
factoronror属性从java任务设置为true。

+0

谢谢!我其实刚刚找到了我在这里寻找的答案:http://stackoverflow.com/questions/907364/how-can-i-have-my-ant-task-pass-or-fail-based-on-the - 它的运行结果 示例: 设置failonerror =”true“起作用。 :D –

+0

由于缺乏规律性,您总是要检查您在ant手册中使用的任务的failonerror属性的默认设置。一些任务,f.e. java + exec有默认的failonerror = false(但是exec有failifexecutionfails = true!?),而copy + javac有默认的failonerror = true – Rebse