优化Play Framework CI流程

时间:2015-03-20 14:02:14

标签: scala jenkins playframework continuous-integration sbt

背景

我正在使用Jenkins来编译,测试,打包和部署我的Play Framework应用程序。

玩Frameowrk版本:2.3.8(但2.2.3相同)

基本上有三个工作:测试,打包和部署。

  1. 在每个git commit上执行测试,编译代码并使用sbt命令“clean test”运行测试。如果成功..
  2. 包作业检查上面的提交,使用sbt命令“clean dist”将应用程序编译并打包成zip。如果成功..
  3. 部署作业将zip复制到目标实例,解压缩并启动应用程序。
  4. 实际上,有更多的第2步工作(如代码覆盖,检查式,......)

    问题

    问题是,这个过程变得越来越慢(110多个Java文件/ 70个Scala(模板)文件),因此没有我希望的那样有用。整个过程的构建时间约为15分钟。

    我尝试过的事情

    我发现,编译时间占用了大部分构建时间,并且作为每个构建步骤的一部分执行。

    为了解决这个问题,我添加了一个新工作,它只是编译项目,将整个jenkins工作原理保存为工件并将其复制到其他工作。但是sbt继续在其他构建作业中重新编译整个项目。

    我知道sbt使用了一些缓存文件夹,我使用以下sbt命令行选项更改了这些文件夹:

    -Dsbt.log.noformat=true -Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy -Dsbt.global.staging=project/.staging
    

    但是仍然会重新编译整个事情。

    问题:

    • 我如何汇总每项工作的编译阶段?
    • 是否有其他缓存选项?
    • 也许将已编译的资源打包成* .jar或simliar?
    • 有关改善构建时间的其他想法吗?

    谢谢!

    PS:当然,我在复制已编译的工作区时从sbt中删除了clean命令

0 个答案:

没有答案
相关问题