Автоматическое развёртывание блога на Hugo с помощью Gitea и Drone
Сейчас я расскажу каким образом мои публикации в блоге автоматически публикуются одной лишь git push
командой.
Hugo это генератор, который из текстовых файлов собирает статический сайт. Так как всё есть текст, для хранения данных отлично подходит система управления версиями – Git.
А с помощью хуков, мы можем инициировать любые действия после манипуляций с исходным кодом. В данном случае, при команде git push
все изменения отправляются на мой личный хостинг кода, где запускается веб хук push
. Веб хук даёт команду DroneIO собирать сайт.
Gitea
На своём сервере я поднял систему хостинга кода Gitea. Gitea – это легковесный свободный и открытый Git сервис.
У меня был опыт работы с Gitlab, который оказался прожорливым монстром делающим слишком много излишних движений. Gitea по сравнению с ним очень удобный шустрый инструмент.
Drone
Drone – свободная система непрерывной интеграции изменений. Drone прекрасно работает с Gitea, легко настраивается и не требует много ресурсов.
Для работы Drone в корне репозитория нужно создать файл инструкций .drone.yml
. В документации подробно расписаны возможности системы.
Моя конфигурация для разворачивания блога на хостинге:
|
|
Имеется всего один докер конвейер на базе alpine
.
- 11: перед сборкой нам нужно вытянуть все подмодули
git
, если они есть в вашей конфигурации; - 22-29: происходит настройка ssh соединения с веб хостингом, на который мы отправим результат сборки
Hugo
; - 30: устанавливаем необходимые исполняемые файлы;
- 31: устанавливаем npm зависимости;
- 32: собираем сайт;
- 33: копируем результат на веб хостиинг;
- 35-45: оповещаем с помощью телеграм о результате сборки.