Вот часть ответа на мой собственный вопрос ...
Я хотел, чтобы команда смогла форкнуть код и мгновенно показать его на URL-адресе, например: http://branch -name.devserver.com
Я установил директивы vhost в apache conf для сопоставления поддоменов с папками:
<VirtualHost *:80>
ServerName www.devserver.com
ServerAlias *.devserver.com
VirtualDocumentRoot /var/www/devserver/%1/
</VirtualHost>
Я разветвляю код в github или на моемместная машина.Затем выполните эти команды на сервере dev
cd /var/www/devserver
git clone git@github.com:/user-name/repos-name
Переместите клонированную папку репозитория в папку с именем ветви, чтобы она стала корневой папкой виртуального хоста субдомена.
mv repos-name new-branch
Затем переключите репозитории с главного на новый филиал
cd /var/www/devserver/new-branch
git checkout new-branch
Теперь он доступен на http://new -branch.devserver.com
Затем после нажатияизменения в ветке на github - я перетаскиваю их на сервер dev
cd /var/www/devserver/new-branch
git pull
Теперь - если я хочу, чтобы вытягивание происходило автоматически, я мог бы настроить CI-сервер для прослушивания перехватчика git-хаба, который вызоветпотяните в каждую ветку папку.Похоже, Хадсон мог это сделать.
Я надеялся найти более разумный способ сделать это:
- Без клонирования репозиториев много раз
- Одной командой, которая эффективно обновляет все ветви, или ловушкой, котораяпозвольте мне использовать только ветвь, которая была обновлена
- С подходящей структурой папок для каждой ветки - так что я мог протестировать любую ветку по определенному URL без необходимости связываться с http config каждый раз, когда я разветвляю код
- возможно, автоматически создается корневая папка для новых веток, чтобы они волшебным образом появлялись на сервере dev
Любые дальнейшие мысли приветствуются ...