Отдельное здание от развертывания с помощью Хадсона

Мы начали использовать Hudson, и текущий рабочий процесс:

checkout local> code> run tests> update> run tests> commit

Скорее этот опрос, Хадсон просто сидит там, пока мы не создадим экземпляр сборки. Затем он:

checkout local> запустить скрипт Phing

Затем скрипт Phing:

svn экспорт последней версии> запустить тесты (если успешно)> создает отчеты и т. д.> сжимает экспорт> scp на производственный сервер> .. делает магию, чтобы сделать сайт живым …

Все это прекрасно работает и денди, однако на самом деле это не дает нам возможности для какого-либо «постановки» QA, и каждая сборка строит ревизию главы репо. В идеале мы хотели бы, чтобы Хадсон опросил или использовал post commit hooks build every commit и:

checkout local> запустить задачу Phing для запуска тестов и в случае успеха создает отчеты и т. д.

Затем можно вручную создать автоматическое развертывание (через задачу Phing), чтобы либо «организовать среду QA, либо выполнить ее с каждой конкретной сборки. Не каждая фиксация будет развернута в QA.

Возможно ли, что этот рабочий процесс возможен с помощью Hudson, или нам придется вручную запускать задачи развертывания Phing после.

Solutions Collecting From Web of "Отдельное здание от развертывания с помощью Хадсона"

Я отделил задание сборки / теста (job1) и задание развертывания (job2). Job1 запускается на trunk после каждого фиксации (опросы Hudson, но post commit hook также будет работать). Он также архивирует артефакты сборки. Job2 будет запущен вручную. Он получает build_number из job1 в качестве параметра сборки (мне нравится параметр run) и загружает артефакты из job1 в собственное рабочее пространство. Это они запускают развертывание. В вашем случае я бы добавил еще один параметр (параметр выбора), чтобы определить, в какой среде вы хотите развернуть.

С плагином установки описания вы можете распечатать номер запуска из job1 и среды, и вы можете, чем легко видеть в истории заданий, какую сборку развертывали в какой среде.

В итоге я сделал что-то похожее на предложение Питера Шуетце. Однако я использовал только единственную работу. Я использую 3 параметра сборки, развертывание (bool), среду (выбор) и ревизию (текст). Затем я изменил свои сценарии Phing только для развертывания, если параметр deploy является истинным, и в этом случае он будет развертывать указанную ревизию в указанной среде. По умолчанию deploy is false, ревизия – это head и среда. Теперь, когда Hudson опроса svn, он видит, что параметр deploy является ложным и обходит задачи развертывания.

Я не совсем понимаю, чего вы хотите достичь, но мне интересно, используете ли вы плагин Phing ? Возможно, то, чего вы хотите, в настоящее время не возможно через Хадсон и может потребовать изменения вашего процесса разработки, чтобы это стало возможным.