Как Drush и Jenkins используются вместе для непрерывной интеграции?
Вопрос
Я слышу модные слова, «непрерывная интеграция», «Drush» и «Jenkins» часто. Таким образом, вызывая мой интерес.
Как Drush и Jenkins используются вместе для непрерывной интеграции?
Кроме того, зачем вам вместе использовать Drush и Jenkins?
Решение
Для моих проектов я использую сценарий сборки из Drush Commands на работе Jenkins. Я использую свой Phing Drush Задача Проект для запуска Drush из Фигур Строительский скрипт. Это позволяет мне использовать существующие задачи PHING (например, копия файлов, Phplint и т. Д.). С помощью Drush, этот сценарий сборки
- Загружает весь код, не являющийся Custom (т.е. Drupal Core и вносит модуль и темы) с Заработать к
./dist
- Расширяет заполнители в версии
settings.php
(т.е. заменить${db_host}
с фактическим именем хоста DB), копируя его до недавно загруженного./dist/sites/default
папка. - Копировать пользовательские модули и темы
./dist/sites/all/modules/custom
а также./dist/sites/all/themes/custom
- Бежать
phplint
Для всех файлов из моих пользовательских модулей и тем. - Копировать все под
./dist
к предварительно сконфигурированной Webroot. - Бежать
drush site-install testing
а такжеdrush pm-enable simpletest
Чтобы установить свежий сайт, используя базу кода сборки и способен запустить SimpleteTest. - Бежать
drush test-run
Чтобы запустить мои пользовательские тестовые люксы. - Бежать
drush coder-review
.
Вот прокомментированный Bult.xml шаблон для использования пыла в Дженкинсе.
Другие советы
Вы можете использовать phing в Дженкинсе, чтобы использовать 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>