2015-02-06 3 views
2

Я не знаю, действительно ли это место, чтобы спросить об этом, но я борюсь с «лучшими практиками», когда дело доходит до ворчания и развертывания. Моя команда использует битбакет для размещения репозиториев и rackspace в качестве серверов.Развертывание Grunt с Git

Я использую grunt для создания моего сайта в статические файлы (скомпилирование ejs/less в статические html/css). У меня есть черновой Dev с часовыми задачами и хрюкать прод, который делает все оптимизации/минификацию и т.д.

На данный момент процесс развертывания:

1) хрюкать прод

2) мерзавец фиксация/мерзавец толчок

3) отправить запрос нагрузочного в BitBucket, объединить код в мастер

4) SSH в сервере и мерзавец тянуть.

Это гарантирует, что все, что у меня есть на сервере, является git commit и было просмотрено. Одна из проблем, с которыми я столкнулся, иногда забываю запустить grunt prod перед тем, как совершить сделку, а затем в конечном итоге с неоптимизированным сайтом.

Я изучил использование метода ssh для развертывания, в основном FTP-файлы после запуска grunt prod. Это позволит исключить шаг ssh в сервер и знать команды. Я обеспокоен тем, что этот метод может не синхронизироваться с git и избегать этапа просмотра кода/запросов на передачу.

Я думаю, что я нахожусь на пороге правильного поведения, но чувствую, что мне что-то не хватает!

Любые советы? Благодаря

+0

Я твердо убежден, что распространяемые файлы должны оставаться вне контроля версий. Вы думали о том, чтобы перевернуть вещи и передать только * исходные * файлы в Git, а затем использовать Grunt в качестве инструмента развертывания для проверки, сборки и развертывания ваших файлов? Таким образом, весь ваш конвейер развертывания автоматизирован, и невозможно пропустить шаг или зафиксировать неправильные файлы. –

+0

Спасибо @AntP за быстрый ответ! Я это рассмотрел, но мне не удалось обвести голову, как это сделать правильно. Можете ли вы подробнее рассказать о том, что вы предлагаете? – raydeneg

ответ

0

Что касается этого

[будучи в состоянии] исключить стадию того, чтобы SSH на сервер и знают команды

битоприемник поддерживает POST фиксации крючки, подробнее здесь:

В основном происходит то, что, когда вы фиксируете репозиторий bitbucket, битбакет отправляет HTTP-запрос на URL-адрес по вашему выбору (с полезной информацией, содержащей информацию о вашей фиксации).
У вас есть сценарий, например. PHP или любой другой сервер, который вы используете, который срабатывает при попадании URL-адреса, а затем запускает ваш git pull или любые команды, которые вы хотите.

здесь является в глубине руководство по процессу http://jonathannicol.com/blog/2013/11/19/automated-git-deployments-from-bitbucket/

по протоколу FTP файлы через

Это может быть довольно трудным и медленным, то есть как бы отслеживать, какие файлы изменились? как бы вы справились с удалением файлов в своей локальной папке проекта, а затем обновили удаленный с помощью этих абзацев?

Для этого я бы использовал rsync, который является отличным инструментом синхронизации.

Я знаю, что это не полное решение и не решает проблему забывания запустить grunt prod, но, надеюсь, это может вам помочь.

Смежные вопросы