Подтвердить что ты не робот

Настройка непрерывной интеграции Play Framework 2.0

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

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

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

4b9b3361

Ответ 1

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

Мы выполняем следующее под Bamboo для наших сборников:

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

(переменная SBT_OPTS отключает форматирование цвета, делая тестовый вывод разборчивым в файлах журналов.)

Ответ 2

Мне посчастливилось добавить плагин отчетности 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 у меня теперь довольно неплохая настройка для Java-проекта Play 2.

Ответ 3

Вот несколько подробных инструкций о том, как это сделать http://wiki.cloudbees.com/bin/view/DEV/Playframework Он основан на облачных облаках, но он будет работать для любой установки Jenkins.

Ответ 4

Вам даже не нужно использовать 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. Затем вы можете просто снова запустить оболочку, чтобы начать свое приложение для воспроизведения!