Настройка Webapp Dev / Production с использованием Git - PullRequest
2 голосов
/ 31 марта 2012

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

Как я себе это представляю:

  • вытащить из центрального хранилища
  • развиваться локально
  • push to dev server
  • тест
  • слияния
  • дс
  • упаковка и доставка на производственный сервер

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

Существует ли собственное программное обеспечение, которое можно использовать для этого?

Как я уже сказал, я сейчас использую Gitlab. Я попробовал Gitorious (слишком много для настройки), Girocco, git-php и не смог заставить их работать на нашем сервере разработки, по крайней мере, не изменив их, что лишает смысла иметь одинаковые dev и рабочие серверы.

Этот вопрос основан на моей работоспособности. Если мой вопрос станет спорным из-за плохого рабочего процесса, я был бы рад, если бы в моих рабочих процессах были указаны ошибки.

Обновление: Мы в основном разрабатываем на PHP (различные фреймворки и CMS), и наши серверы используют Apache за Nginx на Ubuntu 10.04. Разные разработчики находятся в разных офисах в одном здании, но в разных сетях. Хотя мы не можем напрямую подключаться к компьютерам друг друга, мы все можем получить доступ к серверу dev через любой порт.

Обновление X2: Ответ VonC прояснил большинство вопросов, которые у меня есть, но, поняв это немного лучше, я бы хотел задать более конкретный вопрос:

Поскольку я использую gitolite (Gitlab построен на этом) и поскольку gitolite хранит пустые репозитории, при отправке ветки на сервер разработки я не могу просматривать сайт на сервере dev так, как мог бы, если бы там было были рабочие папки. Хотя я мог использовать SSH в / var / www, git init и git clone git@127.0.0.1... сервера разработки из чистого репозитория gitolite, я бы предпочел, чтобы это делалось автоматически.

Будет ли самый прямой способ сделать это - ловушка после обновления с вышеуказанными командами? Это кажется немного более сложным, чем мне нравится, но я представляю это довольно распространенный вариант использования, так что, возможно, я просто что-то упустил.

1 Ответ

0 голосов
/ 01 апреля 2012

Вы можете объединить:

  • ловушку после получения, чтобы перейти на ваш действующий сайт (не-голое репо) и обновить содержимое с последними коммитами, отправленными в ваше голое репо.
    См. " Подмодуль Git на удаленном компьютере " (примечание: в вашем случае подмодули не нужны, но механизм вытягивания, описанный в этом ответе, по-прежнему применяется)

  • и слой авторизации, такой как gitolite , если вы хотите управлять тем, кто может отправлять на сервер разработки.А также управляйте chmod в выписанном репо.
    См. " ee "

  • a драйвер фильтра для управления определенным содержимым файла в зависимости от среды развертывания:

filter driver

Сценарий 'smudge' может генерировать правильное содержимое во время git checkout.

...