Должен ли я иметь несколько файлов build.xml для одного проекта (dev, staging, production) - PullRequest
3 голосов
/ 08 августа 2011

Я работаю над тем, чтобы обернуть голову вокруг ANT, CI, SVN и развернуть. У меня есть dev-сервер, промежуточный / qa-сервер, рабочий сервер и сервер сборки.

Теоретически, сервер CI Build (бамбук) будет запускать сборки и (FTP ??) затем на сервер dev. В какой-то момент мы решим развернуть сборку на промежуточном сервере. Как мне обновить информацию FTP, которая является частью задачи ANT? Тот же вопрос применяется при развертывании на производственном сервере.

Ответы [ 2 ]

3 голосов
/ 08 августа 2011

Я думаю, что вы ищете configuration management? Сами ваши сценарии должны делать то же самое независимо от того, где они запущены - dev, staging или production. Но вы можете иметь конфигурационные файлы для каждой из ваших сред, которые будут иметь значения конфигурации, специфичные для соответствующей среды. Сценарии будут считывать значения из этих файлов конфигурации и соответствующим образом настраивать ваше приложение.

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

Итак, приведем некоторые подробности:

Имеют конфигурационные файлы, такие как dev.config, stage.config, prod.config (или .properties файл) и т. Д. Конфигурация будет иметь ips компьютера, значения для других частей среды и т. Д. Все, что нужно для вашего приложения быть настроенным и запущенным в этой среде.

Скажем, у вас есть цель "развертывания" в муравье. Пусть он читает некоторое свойство "environment" из командной строки (-Denvironment = stage)

Используйте это свойство для чтения файла конфигурации и значений и используйте эти значения для развертывания. Используйте подход, основанный на convention over configuration, при этом существуют некоторые разумные значения по умолчанию, которые файлы конфигурации могут переопределять, только если значение отличается от значения по умолчанию для этой конкретной среды.

Будет одна цель со значением свойства "environment", определяющим конфигурацию среды для использования.

0 голосов
/ 08 августа 2011

Вы можете сделать две задачи, например, «ftp_to_dev» и «ftp_to_staging», а затем просто вызвать ту, которая вам нужна.

...