Как видим в данном примере, весь процесс занимает 2 часа, забираюются результаты, и все ресурсы освобождаются.
Но, в целом, да, я вами согласен. Для 3-10 пакетов, даже со взаимными зависимостями, если есть спеки, даже rpmbuild сгодится!
У меня сейчас OBS перешел в фоновую часть, но есть несколько вопросов:
1. Какие есть standalone альтернативы? В моем случае поддерживающие deb. Pbuilder и launchad не предлагать. Один стар, другой не документирован.
2. Пробовал ли собирать не в виртуалке, а в контейнере?
1. Можно попробовать fpm. Но в тонкостях deb-систем я не силен.
2. Нет, в контейнере не пробовал, и пока не вижу, как это применить к OBS.
Даже наоборот, пример описаный в статье, используя подготовленные образы http://openbuildservice.org/download/other/, позволяет полностью абстрагироваться от того, что такое OBS.
Просто черный ящик, через API скармливаем ему профили, и данные — получаем результат.
Производим несколько итераций до полного удовлетворения, сохраняем профили, и убиваем виртуалку.
1. fpm не парсит зависимости. То есть кросс-ребилд не возможно сделать, надо писать костыль.
2. ту интересен вопрос, как это кошерно стартовать в облаке.
Я для сборки deb пакета настроил Gitlab CI. Пакет собирается в докер раннере, артефакты отдаются в gitlab. Собирается под Ubuntu 12.04, 14.04.
В отсутствии Gitlab CI сделал бы примерно так — sh скрипт запускает docker, собирает пакеты, копирует куда надо по ssh. Для deb-based могу порекомендовать еще посмотреть deb-o-matic.
За den-o-matic спасибо, интересно. В остальном, любое CI прекрасно до того момента, пока вы не зависите от управления зависимостями при сборке пакета, когда в зависимости от одного, надо сделать ребилд пары сотен.
В своё время ушёл с OBS из-за того, что не было поддержки udeb пакетов. Они собирались, но не публиковались в репозиторий. Как сейчас с этим дела обстоят?
Там проблема не только в том, что он udeb не публикует. OBS оперирует плоскими репозиториями. A deb и udeb нельзя держать рядом, они конфликтуют друг с другом.
Готовим Open Build Service 2.6