Как многие наверное уже знают, для разработки Блэкбокса в
Центре была придумана достаточно удобная схема организации
непрерывной интеграции. Так теперь, стоит сделать фиксацию в
хранилище в любой из веток, как на сервере запускается процесс сборки Блэкбокса и подготовка
файла с его архивом и установочным файлом. Технически система представляет из себя скрипт на языке Питон, связывающий набор вспомогательных приложений, а также подсистему Script, которая позволяет передавать Блэкбоксу файлы через параметры командной строки для исполнения. Так, при фиксации в хранилище, вызывается Hook (скрипт на php), который инициирует обновление хранилища на сервере Центра. Раз в минуту по расписанию Cron запускает
скрипт сборки, который проверяет нет ли чего-то нового в локальном хранилище, и если есть, то выполняется вся последовательность процедур сборки проекта.
После того, как для Центра данная система была немного обкатана, возникло закономерное желание организовать нечто подобное для своих проектов. То есть я хочу, на базе самой последней сборки Центра собрать свой проект, если в хранилище проекта произошли изменения.
Адаптировав скрипт Центра для каждого из проектов, мы получаем желаемое.
Пока я организовал автоматическую сборку трех проектов:
http://dev.molpit.com/Один из них полностью открыт, поэтому можно поглядеть как это организовано и что получается.
Вот такой скрипт собирает проект:
http://molpit.com/pub/diaball/make_py.txtи выкладывает в папки unstable и stable
http://molpit.com/pub/diaball