Как я организовал автоматический деплой для своих пет-проектов

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

Всем привет) Это мой первый пост на Хабре, и сегодня я расскажу про небольшой pet project (git-trigger) , который я недавно написал для сборки своих проектов на сервере. На данный момент я использую его в нескольких своих проектах для автоматической сборки и пока не было замечено никаких ошибок.

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

Работает все это дело максимально просто. git-trigger запускает воркер, который с какой-то периодичностью пытается сделать git pull origin branchname и при обнаружении изменений в ветке он запускает сборку проекта через make команду.
Команда для запуска выглядит примерно так:

git_trigger tarmalonchik/project_name /root make_command branch_name

Для того чтобы установить этот сервис нужно использовать команду:

go install github.com/tarmalonchik/git_trigger@latest

Далее можно добавить сервис в systemd, вот так примерно выглядит мой конфиг для systemd:

[Unit]
Description=script which runs git trigger
Wants=network-online.target ssh-agent.service
After=network-online.target ssh-agent.service

[Service]
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin
Environment=HOME=/root
ExecStart=/root/go/bin/git_trigger tarmalonchik/project_name /root build master

[Install]
WantedBy=multi-user.target

Это мой первый проект, который я решил показать публике, поэтому буду рад любой конструктивной критике.

Источник: https://habr.com/ru/post/700440/


Интересные статьи

Интересные статьи

В предыдущих сериях Это вторая статья в моей серии «для самых маленьких» — предыдущая была посвящена «классическому» Telegram-боту, наследуемому от TelegramLongPollingBot. Для кого написано Е...
Всем привет! Не так давно на работе в рамках тестирования нового бизнес-процесса мне понадобилась возможность авторизации под разными пользователями. Переход в соответствующий р...
История сегодня пойдёт про автосервис в Москве и его продвижении в течении 8 месяцев. Первое знакомство было ещё пару лет назад при странных обстоятельствах. Пришёл автосервис за заявками,...
В интернет-магазинах, в том числе сделанных на готовых решениях 1C-Битрикс, часто неправильно реализован функционал быстрого заказа «Купить в 1 клик».
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...