26

Ich bin auf der Suche nach Ideen für eine Play 2.0 Continuous Integration Setup. Es würde typische Aufgaben wie Build nach einem git push, nächtliche Builds mit Deployment zu einer Test-Heroku-Instanz usw. enthalten. Auch Code-Qualität und Test-Coverage-Metriken wären praktisch.Play Framework 2.0 Continuous Integration Setup

Im Moment sieht der Stack wie Play 2.0 mit Java aus, aber das könnte sich in Scala ändern.

Für "traditionelle" Java Web App würde ich Hudson/Jenkins verwenden. Ich habe eine Hudson plugin for Play gefunden, aber Play 2.0 scheint nicht unterstützt zu werden. Ist Hudson hier ein geeignetes Tool oder wie ist Ihr Setup für Play 2.0-Anwendungen?

+0

zumindest das Coverage-Plugin Cobertura unterstützt nicht spielen 2.x. – nylund

Antwort

24

Play 2.0's Build-Tool ist nur ein dünner Wrapper um SBT. Sie sollten Hudsons sbt plugin verwenden können, um SBT-Build-Befehle auszuführen, die den Play-Befehlen entsprechen, die Sie von der Konsole aus ausführen würden.

wir folgenden unter Bambus ausführen für unsere baut: (. Die SBT_OPTS Variable schaltet die Farbformatierung, Testausgang lesbar in Log-Dateien zu machen)

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

9

ich nützlich gefunden JUnit Reporting-Plugin hinzufügen, da ich nicht bekommen konnte Testergebnisse werden sonst angezeigt.

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

Für PMD und Check Früher habe ich dies: https://github.com/ymasory/sbt-code-quality.g8

Für Testabdeckung ich JaCoCo im Moment bin mit: http://ronalleva.com/2012/04/25/jacoco-and-play.html

SCCT könnten andere Option für die Abdeckung: http://mtkopone.github.com/scct/

Mit denen und PMD, CheckStyle und JaCoCo Plugins für Jenkins habe ich jetzt ganz ok Setup für ein Play 2 Java Projekt.

3

Sie müssen nicht einmal das SBT Plugin verwenden. Ich spiele Play 2.1.1 auf Jenkins und benutze einfach die Execute Shell. Ich laufe etwas wie das folgende:

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

Das funktioniert ganz gut. "Play" ist einfach nur ein dünner Wrapper um sbt.

"stage" erstellt eine ausführbare in Ihrem Ziel/Server-Verzeichnis. Dann kannst du einfach wieder shellern, um deine Spielanwendung zu starten!

Verwandte Themen