- PVSM.RU - https://www.pvsm.ru -
Все началось с того, что нам надоело собирать поставки от внешних разработчиков (ВР) вручную.
В перечень работ входили такие этапы как скачивание поставки, проверка поставки на структуру, проверка внутреннего содержания файлов, загрузка поставки согласно внутренней структуре в СКВ (Систему контроля версий).
Поставка от ВР может приходить в виде исходного кода или набора бинарных файлов. Поставку с исходниками предварительно необходимо собрать и протестировать, а тут уже могут использоваться и собственные скрипты, и TFS, и maven, и т. д. и т. п. но это уже совсем другая история…
Так же каждый ВР присылает поставки в разном формате, так как нет жесткого регламента структуры поставки.
В итоге было решено написать некий Автосборщик, который выполнял бы все действия по заранее созданному алгоритму, так же его внедрение позволяло бы выработать единый подход к формированию структуры поставки.
В качестве СКВ мы используем Git, SVN, CA Harvest [1] (Зависит от конкретного проекта).
После недолгих раздумий и оценки парка ПО в качестве «кубиков» Автосборщика были взяты следующие компоненты:
В Jira добавили несколько необходимых полей:
Создали таблички в БД с параметрами и набором задач для каждого набора параметров "Проект + Поставщик + Контур":
— Каждый проект состоит из Процессов в определенной последовательности
— Каждая Процесс включает в себя набор параметров (жестко заданные в БД для проекта и вычисляемые)
В итоге процесс работы Автосборщика получился следующим:

Сам Автосборщик выполняет следующий пул процессов:
В случае возникновения ошибки Статус отправляется в задачу Jira, а также полный лог работы по почте пользователю, запустившему процесс автосборки, и группе сопровождения.
На данный момент в системе описаны процессы следующих типов:
Какой же Профит мы получили из всего этого:
Что планируется доработать:
P.S. Не знаю на сколько здесь нужны выдержки кода. В самих исходниках нет чего-то и необычного.
Автор: push
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/analiz-i-proektirovanie-sistem/252689
Ссылки в тексте:
[1] CA Harvest: https://communities.ca.com/community/ca-harvest
[2] Источник: http://habrahabr.ru/sandbox/108484/
Нажмите здесь для печати.