Сборочная среда для проекта Midnight Commander — продолжение | ||
Разное > Консоль В первой части я представил новый сервис сборки бинарных пакетов файлового менеджера Midnight Commander для Debian/Ubuntu. В комментариях справедливо указали на недостаток технического описания самой среды и я пообещал, что выложу подробности как только код будет приведен в божеский вид. Прошло две недели, появилось немного времени, чтобы стабилизировать функционал и причесать код (он все еще ужасен, но вроде работает как задумано), так что пора выполнить обещанное.В первой части я представил новый сервис сборки бинарных пакетов файлового менеджера Midnight Commander для Debian/Ubuntu. В комментариях справедливо указали на недостаток технического описания самой среды и я пообещал, что выложу подробности как только код будет приведен в божеский вид. Прошло две недели, появилось немного времени, чтобы стабилизировать функционал и причесать код (он все еще ужасен, но вроде работает как задумано), так что пора выполнить обещанное.
Я специально не включаю в топик исходные коды, их немало, и на мой взгляд статья получается перегруженной. Кому интересно, может скачать их с googlecode. Сборочная среда Сборочная среда состоит из нескольких shell-скриптов:
Далее идут скрипты, которые составляют саму сборочную среду:
build-mc-from-git.sh Как я уже упомянул ранее, это наиболее важная часть сборочной среды. Выполняет два вида операций: сборка/пересборка релизов и сборка ночных срезов из GIT. Если была выбрана сборка релиза, то скрипт:
Сборка ночного среза отличается только тем, что исходники формируются из GIT репозитария и отличается код инкрементирования версии. Если скрипт обнаруживает, что в master ветке репозитария изменений не было, то сборка прерывается. buildbot.sh Этот скрипт вызывает build-mc-from-git.sh и в случае успешного завершения делает дополнительную проверку бинарного пакета в piuparts и если ошибок нет, то запускает процесс сборки целей (squeeze-i386, squeeze-amd64, natty-i386 и т.д.). После каждой успешной сборки обновляется временная структура репозитария. Если все цели собраны успешно и buildbot.sh был вызван одним из заданий CRON (mc-release-builds.sh или mc-nightly-builds.sh), то запускается скрипт обновления моего репозитария. В этот момент обновляется служебная информация APT, подписываются файлы Release и обновляется серверная копия. Сейчас полный цикл сборки 8 таргетов занимает чуть больше часа. В будущем возможно расширю таргеты на rpm-based дистрибутивы (насколько я понял, апстрим так и не восстановил нормальную работу предыдущего buildbot'a). Дополнительную инфу или посильный саппорт можно получить на страничке проекта. Источник: http://habrahabr.ru/blogs/linux/129989/ |
||
Комментарии | ||