Play framework 2.0 continuous integration setup

10,353

Solution 1

Play 2.0's build tool is just a thin wrapper around SBT. You should be able to use Hudson's sbt plugin to execute SBT build commands that are the equivalent of the Play commands you would execute from the console.

We execute the following under Bamboo for our builds:

SBT_OPTS="-Dsbt.log.noformat=true"
sbt clean compile test

(The SBT_OPTS variable turns off the colour formatting, making test output legible in log files.)

Solution 2

I found useful to add JUnit reporting plugin as I couldn't get test results to be displayed otherwise.

https://github.com/bseibel/sbt-simple-junit-xml-reporter-plugin

For PMD and Checkstyle I used this: https://github.com/ymasory/sbt-code-quality.g8

For test coverage I am using JaCoCo at the moment: http://ronalleva.com/2012/04/25/jacoco-and-play.html

Scct could be other option for coverage: http://mtkopone.github.com/scct/

With those and PMD, CheckStyle and JaCoCo plugins for Jenkins I have now quite ok setup for a Play 2 Java project.

Solution 3

here Is some detailed tutorial about doing It http://wiki.cloudbees.com/bin/view/DEV/Playframework It based on cloudbees but it would work fro any Jenkins Installation

Solution 4

You actually don't even need to use the SBT Plugin. I am running Play 2.1.1 on Jenkins and simply use the Execute Shell. I run something like the following:

cd ./your-play-project-root
play clean compile test stage
exit

This works quite well. "play" is simply just a thin wrapper around sbt.

"stage" will create a runnable in your target/server directory. Then, you can simply shell again to actually start your play application!

Share:
10,353

Related videos on Youtube

cno
Author by

cno

Updated on June 10, 2022

Comments

  • cno
    cno almost 2 years

    I am looking for ideas for a Play 2.0 continuous integration setup. It would contain typical jobs like build after a git push, nightly builds with deployment to a test Heroku instance etc. Also code quality and test coverage metrics generation would be handy.

    At the moment the stack looks like Play 2.0 with Java but that might change to Scala.

    For "traditional" Java web app I would use Hudson/Jenkins. I found a Hudson plugin for Play but it doesn't seem to support Play 2.0. Is Hudson suitable tool here in general or what is your setup for Play 2.0 applications?

    • nylund
      nylund almost 12 years
      at least the coverage plugin cobertura does not support play 2.x.