У меня есть сервачок, на котором крутятся тестовые домены разрабатываемых сайтов. Так же есть свой закрытый git-репозиторий. Хочется грамотно автоматизировать процесс обновления сорцов на демо-площадках, т.е. синхронизировать иэменения в репозиториях.
В настоящий момент я поступаю так:
1) клонирую репо на демо-площадке 2) настраиваю хост 3) добавляю в кронтаб вызов баш-скрипта (ниже про него) 4) типа, профит..
Вобщем для того чтобы чтобы это дело обновлялось я накалякал скрипт в пару строк который запускается каждые две минуты по крону:
#!/bin/bash
# project env
projectname="project"
branchname="master"
dbuser="dbuser"
dbname="dbname"
dbpass="dbpass"
# magic actions
maindir=$(dirname $(readlink -f $0))
cd $maindir
cd ../../../
# pull new version
git pull origin $branchname
# drop all old tables from project DB
mysqldump -u$dbuser -p$dbpass --add-drop-table --no-data $dbname | grep -i ^DROP | mysql -u$dbuser -p$dbpass $dbname
# add actual tables and data into empty project DB
mysql -u$dbuser -p$dbpass $dbname < $maindir/$projectname.sql
Вобщем я не очень в баше, что написал то написал. Магия типа cd ../../../ потому что в проектах одинаковая структура и я просто положил этот скрипт в папку с бекапами.
Так то удобно, сидишь локально, коммит, пуш и вуаля - заказчик видит весь процесс почти в реальном времени. Удобно показывать отдебаженные изменения. Вообще, это я на коленке накидал, а хотел спросить есть ли какие-то готовые решения автоматизации таких процессов?