Но мое внимание привлекло решение от самого github — GitHub Actions. Это софтина которая помогает настроить жизненный цикл разработки, и из коробки поддерживается в каждом репозитории.
Немного разобравшись с синтаксисом .yml файлов и самим workflow, я реализовал достаточно примитивный CI/CD, который позволяет мне в течении минуты обновлять мое приложение на продакшене.
Пайплайн
Для автоматизации деплоймента, мне было необходимо реализовать следующий флоу:- Подключиться по ssh к моему VPS
- Переместиться в нужную директорию
- Сделать git pull актуальной мастер ветки
- Запустить скрипт из Makefile
- …
- PROFIT!
GitHub Actions не умеет в ssh, по этому пришлось искать решение, и сразу же я наткнулся на этот репозиторий.
Тут же я накидал следующий workflow.yml файл:


Для этого сгенерируйте пару ключей, если вы еще этого не сделали, с помощью команды ssh-keygen -t rsa, а после этого скопируйте ваш приватный ключ с помощью cat ~/.ssh/id_rsa и создайте секрет.
Секреты, которые передаются через ${{ }} синтаксис можно создать тут:

Вот так просто можно быстро настроить сносный CI/CD для вашего приложения и автоматизировать рутинные задачи.
Не теряйте время на роботу, которую можно и нужно автоматизировать.
Чести и удачи!