Close

Git. Автоматический деплой

В этой статье я расcкажу как отправлять коммиты на сервер в развернутый проект. Это не всегда лучший вариант, но для небольших проектов вполне подходит. Сам я использую это для Django и uwsgi.

Итак, приступим к настройке сервера.
Создадим на сервере директорию для репозиториев (если вы этого не сделали раньше). Я храню их в /var, но можно выбрать и другое место.

В ней создадим директорию для репозитория проекта:

И инициализируем пустой репозиторий:

Теперь нужно настроить git хук. Хуки — это скрипты, которые выполняются при определенных командах git и хранятся в директории hooks. Нас интересуют действия, выполняемые после того, как придет новый коммит. Это post-receive хук.
Отредактируем его:

Добавим следующие команды:

Первая строка – указывает на интерпретатор скрипта. Вторая – непосредственно сам чекаут. Третья не является обязательной. Она создает заново файл .reload, который указан в конфигурации uwsgi.ini (ссылка) touch-reload=/home/myuser/myproject.reload и предназначенный для softly-рестарта проекта.

Сделаем хук исполняемым:

Вернемся на локальную машину.
Тут в директории с проектом нужно инициализировать git и добавить ему live-версию репозитория, который мы недавно создали.

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

Отправим наш проект на сервер:

 

Вот и все! Изменения ушли, проект на сервере обновился. К этому еще можно настроить тестовую версию на другой ветке, но об этом я расскажу в другой раз.

Поделиться: