@c482421

Как сделать деплой проекта на python с github на vps?

Пусть имеется проект на github (например, https://github.com/username/projectname, репозиторий является открытым), в него вносятся изменения и делаются пуши с нескольких компьютеров разработчиков.

Имеется vps, на котором установлены python, flask, gunicorn, nginx, git и supervisor. Supervisor настроен так, чтобы при рестарте сервера запускать gunicorn автоматически, nginx работает на отдачу статики, gunicorn - динамика. Как сделать так, чтобы:

1. Сервер VPS сам опрашивал периодически (например, раз в 10 минут) репозиторий github на предмет изменений в главной ветке и автоматически скачивал эту главную ветку, перезагружал сервер (и как сделать hot deploy в этом случае)
2. Можно было бы вручную обновлять содержимое проекта (т.е. исходные коды) на VPS из консоли SSH (если в рабочей директории проинициализирован репозиторий командой git init и git add .) Желательно, чтобы сервер при этом не прекращал работу.
  • Вопрос задан
  • 1017 просмотров
Пригласить эксперта
Ответы на вопрос 2
@DuD
Посмотрите в сторону хуков: https://git-scm.com/docs/githooks

Ну либо по крону.
Ответ написан
Комментировать
Tiendil
@Tiendil
Разработчик ПО.
1. Не надо так делать, не каждый пуш в мастер может требовать релиза, в конце концов он и по ошибке может быть сделан.
2. Можно оформить проект в стандартный питоновский пакет и ставить pip-ом прямо из гитхаба. Примерно так:
pip install --upgrade -e git+https://github.com/Tiendil/dext.git@v0.2.0#egg=Dext

3. Что бы не лазать каждй раз на прод, можно написать деплой скрипт, который будет все нужные вещи останавливать/запускать, ставить пакеты и так далее. Например, с помощью www.fabfile.org
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы