Как друш и Дженкинс используются вместе для непрерывной интеграции?
Я часто слышу модные слова "непрерывная интеграция", "друш" и "дженкинс". Таким образом, разжигая мой интерес.
Как друш и Дженкинс используются вместе для непрерывной интеграции?
Кроме того, почему вы хотите использовать драша и Дженкинса вместе?
2 answers
Для своих проектов я использую сценарий сборки, состоящий из команд Drush в задании Дженкинса. Я использую свой проект Phing Drush Task для запуска Drush из сценария сборки Phing. Это позволяет мне использовать существующие задачи Phing (например, копирование файлов, phplint и т. Д.). С помощью Drush этот скрипт сборки
- Загружает весь нестандартный код (т.Е. Ядро Drupal и модуль и темы для вкладов) с помощью Drush Make до
./dist
- Расширяет заполнители в версионный
settings.php
(т.е. замените${db_host}
фактическим именем хоста БД) при копировании его в только что загруженную папку./dist/sites/default
. - Скопируйте пользовательские модули и темы в
./dist/sites/all/modules/custom
и./dist/sites/all/themes/custom
- Запустите
phplint
для всех файлов из моих пользовательских модулей и тем. - Скопируйте все, что находится под
./dist
, в предварительно настроенный веб-корень. - Запустите
drush site-install testing
иdrush pm-enable simpletest
, чтобы установить новый сайт, используя базу кода сборки и способный запускать SimpleTest. - Запустите
drush test-run
для запуска моего пользовательского теста модуля люксы. - Выполнить
drush coder-review
.
Вот комментарий build.xml шаблон для использования Drush в Jenkins.
Вы можете использовать Phing в Jenkins, поэтому вы можете использовать Drush через http://drupal.org/project/phingdrushtask (Пьер Буйль на SE.COM)
Пользовательский пример:
<drush command='cc' root="${project.drupal.core.dir}" uri="${env.host.name}" assume="yes">
<param>all</param>
</drush>