У меня есть экземпляр Amazon EC2 с чистым репозиторием git, содержащим мое приложение. Я установил хук после получения, который git checkout -f
в мой www. Чтобы нажать на это репо, я установил пульт в моем локальном репозитории, чтобы я мог запустить git push dev
и вроде все работает.
Проблема в том, что этот код также существует на GitHub. Это немного избыточно, и в нем отсутствует возможность просмотра истории коммитов и обновлений для действий, происходящих в среде разработки (или в скором будущем). Также, если моя установка EC2 превратилась в кластер, я не думаю, что можно было бы запустить git push dev
и нажмите на несколько репозиториев в кластере.
У GitHub есть несколько обработчиков сообщений https, которые могут сообщить моему серверу, что кто-то совершил транзакцию. У меня вопрос, как лучше всего это сделать, не ставя под угрозу безопасность или зависимость от приложения, которое я использую. Например, если приложение недоступно, я все равно хочу иметь возможность развернуть.
Если URL невозможно угадать, скажите https://myserver.com/SOME_RANDOM_TOKEN
, этого достаточно, чтобы предотвратить что-нибудь злонамеренное? Я бы не хотел реализовывать аутентификацию для этого URL после получения.
Как следует настраивать конфигурации, если не будет простого способа отправить что-то на сервер отдельно от репозитория? Как должны выглядеть ветки?
Любые ответы или предложения по ним были бы очень полезны. Заранее спасибо.
Вы можете настроить хук после фиксации на Github, но у него будут примерно те же проблемы, которые вы определили с git push dev
- Github ударит только один URL, и это не будет работать (напрямую) с кластером.
Я бы рекомендовал не искать «умный» способ, а вместо этого использовать проверенный, простой метод сценария развертывания, который выполняет необходимое подталкивание / вытягивание / удар ногой / все, что требуется для всех машин, которые в этом нуждаются. Фреймворки развертывания, такие как Capistrano, Vlad the Deployer и множество других опций (доступных на выбранных вами языках), в общем случае упрощают жизнь, но даже простой сценарий оболочки значительно улучшит ваш рабочий процесс.