LINUX.ORG.RU

Автоматическое обновление сорцов на демо-площадке

 , ,


0

3

У меня есть сервачок, на котором крутятся тестовые домены разрабатываемых сайтов. Так же есть свой закрытый 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 ../../../ потому что в проектах одинаковая структура и я просто положил этот скрипт в папку с бекапами.

Так то удобно, сидишь локально, коммит, пуш и вуаля - заказчик видит весь процесс почти в реальном времени. Удобно показывать отдебаженные изменения. Вообще, это я на коленке накидал, а хотел спросить есть ли какие-то готовые решения автоматизации таких процессов?

есть ли какие-то готовые решения автоматизации таких процессов?

PyCharm умеет автоматически заливать изменения по FTP/FTPS/SFTP. Очень удобно, если разработка идёт на готовой площадке, Git тоже можно прикрутить.

squizduos
()

Jenkins, Teamcity. У GitLab, если не ошибаюсь, тоже есть сборщик.

Black_Roland ★★★★
()

Я предпочитаю выкладывать изменения явно, деплой-скриптом. Т.к. по мне на сервере должны быть какие-то законченые версии, а не абы что.

А от костылей с mysql могу посоветовать liquibase.

Sectoid ★★★★★
()
Ответ на: комментарий от iSage

Хаха, первый же результат выдал велосипед как у меня ))

Зато дальше вменяемые варианты. Но я, бывает, не один работаю, и у большинства оффтопик и целый зоопарк IDE/редакторов.

Ладно, повисит временно так, дальше посмотрим, это ж надо как-то внедрять для всех. Спасибо за хуки, предполагал что оно есть, не знал как называется )

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Sectoid

на сервере должны быть какие-то законченые версии, а не абы что

Даже в моем велосипедном случае так и получается, ветка то почти всегда - мастер. Смерджил и готово.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от Sectoid

Я предпочитаю выкладывать изменения явно, деплой-скриптом. Т.к. по мне на сервере должны быть какие-то законченые версии, а не абы что.

для этого разрабатывают в dev а релизы мержат в master. синхронизируют на сервак master

quest ★★★★
()
Ответ на: комментарий от Sectoid

предполагается что прежде чем смержить с мастером ветка тестируется. но вообще согласен это хорошо скорей для тестовых целей, для продакшена лучше жать педаль в ручную

quest ★★★★
()
Ответ на: комментарий от quest

предполагается что прежде чем смержить с мастером ветка тестируется. но вообще согласен это хорошо скорей для тестовых целей, для продакшена лучше жать педаль в ручную

Вот и консенсус) В принципе подумываю попробовать подход с авто-деплоем для тест-инстансов.

Sectoid ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.