непрерывное развертывание приложения Grails - PullRequest
4 голосов
/ 15 ноября 2011

Я работаю над приложением Grails и мне нужно регулярно устанавливать исправления на удаленный сервер. Я использую плагин Jenkins с Grails для автоматизации.

Моя точка зрения такова:

Большую часть времени я исправляю несколько классов без каких-либо серьезных изменений в приложении (таких как новая схема базы данных, новые плагины ....). Однако каждый раз, когда я создаю патч, я должен загрузить через ssh 75-миллиметровый военный файл, который занимает от 15 до 20 минут. Большая часть данных не нужна (т.е. все упакованные банки). Для этого достаточно загрузить только новые скомпилированные классы из WEB-INF/classes/ и перезагрузить контейнер сервлета (в моем случае jetty).

Кто-нибудь сталкивался с этим, желательно с Дженкинсом?

Ответы [ 4 ]

2 голосов
/ 23 ноября 2011

Вы можете попробовать использовать CloudBees для непрерывных выпусков.Они также используют дельты для загрузки ваших изменений, а развертывания вообще не влияют на пользовательский интерфейс.

Доступен простой в использовании плагин, позволяющий сделать процесс бесшовным как в приложении Grails, так и в сборке Jenkins.Я написал сообщение в блоге о том, как заставить все это работать легко.

2 голосов
/ 15 ноября 2011

Проверьте аргумент nojars для задачи war : http://www.grails.org/doc/1.3.7/ref/Command%20Line/war.html

Таким образом, вы можете поместить все ваши .jars (которые обычно являются самыми большими файлами внутри .war) в какой-то другой каталог на сервере и просто ссылаться на этот каталог в вашем пути к классу Jetty.


Или вы можете написать сценарий оболочки, чтобы взорвать файл .war (в конце концов, это просто обычный файл .zip), добавить скомпилированные классы и затем упаковать его.

1 голос
/ 15 ноября 2011

Я помню, как видел эту тему в списке рассылки ...

http://grails.1312388.n4.nabble.com/Incremental-Deployment-td3066617.html

... они рекомендуют использовать rsync или xdelta3 только для передачи обновленных файлов. Не пробовали, но это может помочь?

1 голос
/ 15 ноября 2011

Может быть, Cloudfoundry Micro Cloud - вариант, развертывание просто передает дельты, а не весь файл войны.

...