Skip to content

Git автодеплой на web-сервер

LEGACY CONTENT! Use CI/CD.

Цель: Разработчики push-аю т в репозитарий доработки, они автоматически подтягиваются на сайты

Вариант 1:

Git-репозитарий проекта располагается локально: /git/project.git

Детаем clone веток c локального репозитария:

master -> /var/git/project/production/project/
test ->  /var/git/project/test/project/

Для Web-сервера делаем Symlink-и:

/var/www/project.com -> /var/git/project/production/project/public_html
/var/www/qa.project.com -> /var/git/project/test/project/public_html 

Настраиваем хук: /git/project/hooks/post-receive

#!/bin/sh
log() {
    echo `date +"%Y-%m-%d %H:%M:%S"` $@ >>${Log}
}
#
git_pull() {
project=$1
log ${USER} post-recieve on ${project}
cd ${project}
git pull
chmod -R g+w ${project}
}
unset GIT_DIR
#
Log="/var/log/git/git_push_project.log"
#
git_pull "/var/git/project/test/project"
#
git_pull "/var/git/project/production/project"
#

Требования: - локальные конфиги и прочие должны бьть в ключены .gitignore - у учетки разработчика должна быть группа www-data (группа веб-сервера) - учетка рабозработчика должны быть включена в групп git