Отделение здания от развертывания с помощью Hudson - PullRequest
6 голосов
/ 25 октября 2010

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

локально оформить заказ> код> запустить тесты> обновить> запустить тесты> commit

Вместо этого опрос Hudson просто сидит там до тех пор, покамы создаем экземпляр.Затем:

оформить заказ локально> запустить сценарий Phing

Затем сценарий Phing:

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

Все это прекрасно работает и отлично, однако на самом деле это не дает нам никакой возможности для "постановки"QA и каждая сборка строит ревизию репо.В идеале мы бы хотели, чтобы Хадсон опрашивал или использовал хуки после фиксации, строил каждый коммит и:

извлекал локально> запускал задачу Phing для запуска тестов и, в случае успеха, генерировал отчеты и т. Д.

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

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

Ответы [ 3 ]

4 голосов
/ 01 ноября 2010

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

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

2 голосов
/ 02 февраля 2011

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

0 голосов
/ 29 октября 2010

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

...