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

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

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

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

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

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

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

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

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

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

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

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

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

Drupal API функции для работы с таксономией

Октябрь 12, 2018 г.

Drupal 7 поддерживает работу с таксономией на уровне ядра (модуль taxonomy), предоставляя богатый арсенал функций. Здесь мы рассмотрим только функции, ...

Читать

Меняем поведение корневого пункта меню bootstrap dropdown

Апрель 14, 2022 г.

В bootstrap корневой пункт меню с подпунктами (dropdown menu) не является активной ссылкой и лишь служит кнопкой для развертывания подпунктов. Тем временем ...

Читать

Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей

Март 15, 2026 г.

Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение ...

Читать

Error: Class 'Aws\S3\StreamWrapper' not found (Drupal 7)

Август 29, 2022 г.

При обновлении модуля s3fs с ветки 7.x-2.x -> 7.x->3.x друпалу не удаётся найти указанный класс. Все необходимые шаги по апгрейду сделаны, как описано в readme.txt модуля. Это проблема инициализации библиотеки awssdk в s3fs_libraries_info(). Drupal ...

Читать
 

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

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



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