Как при работе с AppHarbor правильно управлять файлами разработки и конфигурацией в реальном времени? - PullRequest
5 голосов
/ 29 июня 2011

У меня небольшой проект, в котором я экспериментирую с AppHarbor . Для тех из вас, кто не знаком с этим, AppHarbor позволяет автоматически создавать и развертывать проекты ASP.NET MVC в облаке, добавляя определенный удаленный Git и затем помещая ваш проект / источник на этот удаленный.

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

Хотя это отличный рабочий процесс, он поднимает для меня новую проблему, связанную с файлами конфигурации. Я использовал для исключения Web.config из управления исходным кодом и вместо этого зарегистрировал файл с именем Web.config.example, который содержал все правильные ключи, но с фиктивными значениями. Затем я просто сделал бы копию этого файла на своем компьютере разработчика, удалил расширение .example и отредактировал значения, которые подходят.

Когда дело дошло до развертывания, я создавал еще одну копию с именем Web.config.live, заменял значения правильными для сервера, загружал ее и удалял расширение .live.

Проблема, с которой я столкнулся сейчас, заключается в том, что если Web.config это , а не под управлением источника, то когда я нажимаю на AppHarbor, проект не будет работать (потому что ему не хватает необходимой информации о конфигурации). Тем не менее, я не хочу, чтобы строка живого соединения была публично видимой на GitHub, что было бы, если бы я когда-либо отправил Web.config в мастер репо.

Какие у меня варианты здесь? Буду благодарен за любой совет.

1 Ответ

9 голосов
/ 29 июня 2011

AppHarbor поддерживает замену конфигурационных переменных при развертывании, чтобы избежать проблемы передачи имен пользователей и паролей в систему управления версиями (среди прочего)Это задокументировано в базе знаний .

...