26

Я ищу идеи для непрерывной интеграции интеграции Play 2.0. Он будет содержать типичные задания, такие как сборка после git push, ночная сборка с развертыванием на тестовый экземпляр Heroku и т. Д. Также было бы полезно генерировать качество кода и тестовые покрытия.Play framework 2.0 установка непрерывной интеграции

В настоящий момент стек выглядит как Play 2.0 с Java, но это может измениться на Scala.

Для «традиционного» веб-приложения Java я бы использовал Hudson/Jenkins. Я нашел Hudson plugin for Play, но он, похоже, не поддерживает Play 2.0. Является ли Hudson подходящим инструментом здесь вообще или какова ваша установка для приложений Play 2.0?

+0

по крайней мере плагин покрытия cobertura не поддерживает игру 2.x. – nylund

ответ

24

Play 2.0's build tool - это всего лишь тонкая обертка вокруг SBT. Вы должны использовать Hudson's sbt plugin для выполнения команд сборки SBT, которые эквивалентны командам воспроизведения, которые вы должны выполнить с консоли.

Мы выполняем следующие под бамбука для нашего сборки: (. Переменная SBT_OPTS выключает цвет форматирование, делая выход тест разборчивыми в лог-файлах)

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

9

я нашел полезным, чтобы добавить JUnit плагин отчетности, как я не мог получить результаты испытаний будут отображаться иначе.

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

Для PMD и Checkstyle я использовал это: https://github.com/ymasory/sbt-code-quality.g8

Для тестового покрытия я использую JaCoCo на данный момент: http://ronalleva.com/2012/04/25/jacoco-and-play.html

SCCT может быть другой вариант для покрытия: http://mtkopone.github.com/scct/

С этими и PMD, плагинами CheckStyle и JaCoCo для Jenkins У меня есть сейчас вполне нормально для проекта Play 2 Java.

3

Вам даже не нужно использовать SBT Plugin. Я запускаю Play 2.1.1 на Jenkins и просто использую Execute Shell. Я запускаю примерно следующее:

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

Это работает довольно хорошо. «play» - это просто тонкая обертка вокруг sbt.

«stage» создаст runnable в вашем каталоге target/server. Затем вы можете просто снова запустить оболочку, чтобы начать свое приложение!