Как деплоить проект на серер по git pull?

Все свои проекты я храню на github. После кучки комитов обычно уже устаканенную версию хочется залить на боевой сервер, чтобы пользователи протестировали последние изменения. Сейчас делаю это руками.


Как можно автоматизировать этот процесс?


Если просто сервер с git — тогда всё понятно. Инициализируем репозиторий на сервере и туда же пушим. А как бы извертеться, чтобы отправлять те же изменения на боевой сервер параллельно гитхабу?
  • Вопрос задан
  • 4528 просмотров
Пригласить эксперта
Ответы на вопрос 5
Я бы порекомендовал внешнюю систему деплоя, например github.com/capistrano/capistrano

Вот мой конфиг для проекта на symfony2:

set :application, "appname"
set :deploy_to, "/var/www/#{application}"

set :repository, "git@github.com:vslinko/#{application}.git"
set :scm, :git

set :shared_files, ["app/config/parameters.yml"]
set :shared_children, ["app/logs", "web/uploads", "vendor"]
set :asset_children, []

set :user, "www-data"
set :use_composer, true
set :update_vendors, false

set :domain, "symfony.slinko.me"
role :app, domain

task :production do
  set :domain, "appname.com"
  role :app, domain
end


После чего cap deploy на тестовый сервер, а cap production deploy на рабочий
Ответ написан
Комментировать
colonel
@colonel
Разработчик PHP, Laravel
Ничего не надо пушить на боевой сервер. Вы путаете процессы.
Репозиторий один. Он у вас на github. Пушите _только_ туда.
Пуллите (git pull) и в локальный для работы, и на тестовые и на боевой.

То-есть на боевом, для развертывания проекта:

git clone ....


Далее при наличии изменений в коде

git pull


Ответ написан
disc
@disc
веб-разработчик
Здесь вам помогут хуки. Подробнее тут.
Ответ написан
Комментировать
difiso
@difiso
В параллельной вселенной я космонавт
А как бы извертеться, чтобы отправлять те же изменения на боевой сервер параллельно гитхабу?

Вы сами ответили на свой вопрос: Инициализируем репозиторий на сервере и туда же пушим.
У гита может быть насколько репозитариев: сделали пуш на github, потом боевую ветку (master скорее всего) на сервер.
Ответ написан
Комментировать
karenishe
@karenishe
В mercurial есть hook update=…
Ответ написан
Ваш ответ на вопрос

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

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