在Jenkins CI

时间:2015-10-04 10:08:37

标签: jenkins playframework sbt

我想使用Jenkins CI与Play框架进行集成测试。我的方案如下:

  1. 我有2个项目,项目A和B.
  2. 项目A取决于项目B.依赖性是这样的,要在项目A上运行测试,我需要先启动项目B.
  3. 我已经在项目A中进行了单元测试,但我需要测试项目A和B的集成。
  4. 我使用SBT插件执行SBT,项目A和项目B分别正常工作。

    我无法找到合适的方法。我面临的问题是我需要将项目B作为预构建步骤运行,但项目B必须保持运行状态,但是一旦构建步骤执行sbt的run动作,项目B就会结束完成我不想要的构建。

    我执行以运行项目B的命令是clean compile run,它作为对SBT启动器的操作执行。

    我尝试了SBT stage,然后运行了jar,但这也导致jar停止了对构建的控制的问题,而Project A没有机会启动。

    我还检查了Spawning a process in Jenkins,但我也无法使其工作。我正在使用Ubuntu,我尝试使用nohup而不是daemonize,如链接中所述,将其添加为执行shell脚本构建步骤,并启动Project B服务器进程和一段时间后杀死它。我也不认为这可能是我想做的唯一方法。

    可能是我错误地使用了Jenkins,或者我可能需要向另一个方向看,所以对此有任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,我需要释放控制台来运行其他东西。我做了类似的事情(即使用sbt命令创建脚本),然后运行带有nohup的脚本,如下所示:

nohup ./myScript.sh &

和Play!应用程序在后台运行良好。

请记住在您的情况下使用不同的端口,因为您正在运行两个Play!应用