Как упростить работу с Bitbucket (кейс моего использования внутри)?

При разработке веб сайта я работаю локально и скидываю код на bitbucket. Оттуда я клонирую сайт на хостинг и запускаю. Когда мне нужно продолжать работу с этим сайтом и нужно чтобы сайт на хостинге был в актуальном состоянии, я как обычно, отправляю код в bitbucket, затем захожу по SHH к хостингу и оттуда тяну изменения с bitbucket. Мне это надоело каждый раз делать. Как можно более или менее автоматизировать этот процесс, чтобы я не делал два телодвижения? Мне нужно, чтобы и в хостинге был актуальный код, но при этом я не делал два шага.
  • Вопрос задан
  • 724 просмотра
Решения вопроса 2
eX1stenZ
@eX1stenZ
Web Dev
А зачем? давай представим ситуацию что Вы накосячили, и запушили код удаления всех юзеров, ну не знаю просто так, а потом на локале это исправили

В общем это нормально, но все-же копать можно в сторону Хуков (Hooks)
Ответ написан
slimus
@slimus
Symfony, Golang
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
customtema
@customtema
arint.ru
Использую rsync.

Не как альтернатива, а как дополнение к mercurial. Как средство для таких быстрых обновлений.

Для пущего удобства создал файлик update.sh, который хранится в корне проекта:

rsync -vzPurp --exclude 'files' ./* пользователь@айпишник:/home/путь/к/нужной/директории
Ответ написан
Комментировать
@RomkaChev
Если 10$ в месяц не критично - используйте deploybot.com - первый репозиторий (вроде) бесплатно. Сразу забудете про мороку с хуками.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
dokku. При пуше в специальный ремоут (типа git push master production) код деплоится куда надо. Подробнее 1, 2.
Ответ написан
Комментировать
dmitriylanets
@dmitriylanets
веб-разработчик
codeship.io отлично деплоит проекты с bitbacket на любой сервер по ssh с помощью rsync за секунды (100 деплоев в месяц бесплатно)
Ответ написан
Комментировать
eruditecat
@eruditecat
Красноглазик
Но у Вас же есть рабочая development-версия сайта, верно? И тестируете работоспособность Вы именно на ней? Если так, толкать новый код в продакшн придётся не так уж и часто. Ну, например, поводом для этого могут служить только новая фича или багфикс. А лучше серия оных. При этом все изменения целостные и логически завершённые. Ну и часто ли? Раз в день? ИМХО, время, потраченное на запрашиваемую Вами оптимизацию, не окупится. А ели уж очень хочется, то самое простое решение можно написать самому и положить в ~/bin/.
Ответ написан
@ashumkin
системный разработчик
в дополнение к хукам (я не в курсе, какие хуки предоставляет bitbucket, а локального post-push хука в Git нет):
не обязательно "заходить по SSH на хостинг", чтобы там вытянуть изменения (я подозреваю, что это происходит "ручками", что и надоело, ибо надо зайти, сменить каталог, выполнить git pull... так?)
это можно и автоматизировать, т.к. ssh - не обязательно интерактивная сессия. позволяет и выполнить команду (ssh <host> command)
то есть
ssh <remotehost> git pull --work-tree=<working_copy> --git-dir=<working_copy>/.git

зайдёт на <remotehost>, сделает git pull для каталога , и выйдет.
А вкупе с alias'ами Git'а, можно сделать alias вроде
git config --global alias.push_and_deploy '!git push <bitbucket> &&  ssh <remotehost> git pull --work-tree=<working_copy> --git-dir=<working_copy>/.git'

тогда при выполнении
git push_and_deploy
выполнится всё, что указано в alias'е (подробнее см. git alias --help), то есть код запушится на BitBucket, и если это будет успешно, то вытянется сразу на хостинге
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы