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


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

Проверка локально > код > запуск тестов > обновление > запуск тестов> фиксация

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

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

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

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

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

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

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

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

Author: xzyfer, 2010-10-25

3 answers

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

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

 4
Author: Peter Schuetze, 2010-11-01 17:53:47

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

 2
Author: xzyfer, 2011-02-02 11:38:40

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

 0
Author: Bernard, 2010-10-29 18:10:58