Какая система непрерывной интеграции наиболее приспособлена?

Я ищу систему непрерывной интеграции для использования с Drupal 7. Предпочтительно ее следует широко использовать и легко поддерживать.

У вас есть мысли?

7
6 голосов | спросил Chris Woollard 12 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 12 Sep 2012 15:18:34 +0400 2012, 15:18:34

3 ответа


7

Среди проектов PHP с открытым исходным кодом две наиболее широко используемые реализации CI - это легко Jenkins ( jenkins-ci.org ) и Travis ( travis-ci.org ). Оба имеют значительные сообщества, и вы можете найти примеры использования их с Drupal (например, wiki.jenkins-ci.org/display/JENKINS/Drupal+Development и www.vmdoh.com/blog/how-we-test-drupal-7-modules-travis-ci ).

Между двумя:

  • Позиционирование Jenkins больше похоже на Drupal - это продукт с открытым исходным кодом с множеством дополнений /опций /функций, но вам нужно много думать о вариантах развертывания и выбора. Это полезно для тестирования и многих других вещей (например, развертывание, ночные архивы, cron-jobs).
  • Travis - это собственная SaaS, предлагаемая на основе freemium - бесплатно для публичного /FOSS-кода; заплатил иначе. Обычно проще настроить, поскольку Travis предоставляет серверы и связывает больше функций по умолчанию. Он имеет более целенаправленный /ограниченный диапазон вариантов использования.

Для некоторых особенностей, которые их различают (на момент написания):

Как правило:

  • Если у вас большой проект (с большим количеством кода, множеством тестов, своеобразной интеграцией, некоторым бюджетом), то более глубокий набор функций и настраиваемость Дженкинса делают его лучшим выбором.
  • Если у вас есть небольшой проект, опубликованный в Github (например, отдельный модуль Drupal или библиотека PHP без бюджета), то простота и комплектация Travis делают его лучшим выбором.
  • Если ваш проект находится между ними, тогда нет четкого эмпирического правила; это решение суда.

Кроме того, вы можете найти buildkit.civicrm.org интересным. Резюме и объяснения написаны для аудитории, которая работает с Drupal /Joomla /WordPress, хотя многие технические детали нуждаются в настройке для аудитории только для Drupal (например, замените «civibuild» на «drush», замените «Build Types» на "Makefiles").

(ПРИМЕЧАНИЕ. Я оставил несколько ссылок в виде обычного текста, потому что stackexchange ограничивает # ссылки от новых пользователей.)

ответил Tim Otten 29 +03002014-10-29T09:12:59+03:00312014bEurope/MoscowWed, 29 Oct 2014 09:12:59 +0300 2014, 09:12:59
3

Я не думаю, что есть причина лучше, чем что-либо еще, почему вы должны использовать какой-нибудь инструмент по сравнению с другими инструментами CI, все они делают почти то же самое (получить источник, сделать что-нибудь ).

Я использую Jenkins в данный момент, и это работает очень хорошо.

В настоящий момент мы используем Jenkins для:

  1. Получить последний код из репозитория кода
  2. Обновление базы данных
  3. Очистить кеш
  4. Запуск тестов
  5. Создание документации с помощью Doxygen

Вы также можете добавить шаги для синхронизации баз данных, обзор кода , развертывание, ... Много Работа с Drupal (обновление базы данных, очистка кеша, проверка выполнения) выполняется с помощью Drush. Если вы планируете использовать CI-систему, Drush в значительной степени обязателен.

Подсказка: run-tests.sh или drush test-run могут создавать JUnit-совместимые XML-отчеты, поэтому тесты Drupal поддерживаются по умолчанию в Jenkins.

Подсказка: если вы используете многоуровневую установку, и вы перемещаете материал между /sites/all и каталогом сайта, используйте Registry Rebuild , чтобы исправить реестр.

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

Сначала это требует некоторых экспериментов, но как только у вас есть правильная настройка для вашей команды, это чистая прибыль. Как я вижу, вам нужно больше подумать о том, как вы собираетесь организовать свою конфигурацию (используя Функции или другие экспортируемые продукты ) в Drupal.

ответил Bart 12 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 12 Sep 2012 16:14:23 +0400 2012, 16:14:23
0

Есть так много сейчас, но не так много четкого победителя. Это очень трудное решение, потому что их так много, и все они делают много общего.

В принципе, я думаю, вам нужно решить, какие ваши конкретные требования, посмотрите, какие опции предоставляют то, что вам нужно. Тогда, вероятно, все еще будет несколько, которые отвечают вашим потребностям, вам нужно как можно больше попытаться найти какие-либо плюсы и минусы каждого (возможно, некоторые из них лучше поддерживаются, лучше подходят ваши существующие технические навыки, имеют больше сообщества и т. Д.) И в конец просто выбирает тот, который вам больше нравится, и идите с этим.

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

Вот некоторые варианты, связанные с интеграцией. Некоторые из них размещены, некоторые из них управляются самостоятельно, некоторые из них имеют оба варианта. Некоторые из них не сосредоточены исключительно на CI.

Удачи, выбрав:)

ответил rooby 29 +03002014-10-29T10:11:03+03:00312014bEurope/MoscowWed, 29 Oct 2014 10:11:03 +0300 2014, 10:11:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132