Организуем автодеплой изменений из репозитория для проекта на Drupal

Когда над проектом работает несколько разработчиков, то возникают определенные структурные и организационные вопросы. Каждый программист обычно работает с собственным сервером, закачивая обновления в рабочую ветку (branch по терминологии git) проекта (например, develop).

После обновления ветки в репозитории, изменения каким то образом должны попасть на сервер (тестовый сервер), где команда тестировщиков, сможет проверить работу.

Закачка и настройка изменений вручную

Можно сделать это вручную.

Залогиниться на тестовый сервер, скачать и произвести обновления измененных файлов. В случае git, это можно сделать командой:

Изменения структуры данных, настройки типов публикаций, представлений и т.п. нужно подготовить специальным образом, чтобы эти изменения могли быть перенесены на тестовый сервер. Для Drupal обычно используют модуль features, и пишут код обновления в файлах *.install.

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

Используя drush, можно выполнить следующий набор команд, находясь в папке с настройками drupal сайта (где то в /sites/<имя проекта>):

Как автоматизировать, реализовать эту логику программно?

По крону можно можно выполнять git pull, если обновлений в репозитории нет, то никаких операций произведено не будет. Но если каждый раз запускать после git pull сброс кешей и реверт фич, то это будут сильно нагружать ваш сервер и мешать работе.

Остаётся подключить это скрипт в crontab. Кроме того, чтобы не зависеть от переменных окружения, стоит использовать абсолютные пути для всех вызываемых утилит, т.е:

Мало букафф? Читайте есчо !

Использование cache API Drupal 7

Май 14, 2019 г.

Изучение API удобно начинать с шаблонов кода, которые демонстрируют технику использования. Пример логики использования/создания элемента кеша [crayon-6a0765d251ed9425191193/] Обратите внимание на дополнительные скобки вокруг $cache = cache_get($cache_id). ...

Читать

Вывод сообщений валидации формы рядом с формой

Март 20, 2019 г.

При возникновении ошибок, во время проверки формы друпал выполняет две вещи, которые отражаются на фронт-энд - добавляет сообщение об ошибке в стек сообщений и маркирует классом error поле, содержащее ошибку. Если форма находится далеко от места вывода ...

Читать

Получить имя текущей темы по дефолту в Drupal

Январь 21, 2019 г.

Theme API к сожалению не даёт прямого метода, чтобы прочитать это значение. Как его получить? Иногда программно нужно установить, что именно видит пользователь на фронт-енд (какую тему использует движок). Необходимость возникает из-за того, ...

Читать

Удаление nodequeue программно

Май 28, 2021 г.

Небольшой сниппет (snippet) по удалению сущностей nodequeue из кода. Может быть полезно при миграции данных. Удобно оперировать с машинным именем нод-кью, но функция удаления требует ID, потому код обычно обретает следующие формы: [crayon-6a0765d252297710422541/] ...

Читать
 

Комментарии к «Организуем автодеплой изменений из репозитория для проекта на Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: