Могут ли службы непрерывной интеграции создавать пакеты для Linux изначально?

Сервисы CI, такие как TravisCI, автоматически создают и тестируют приложения из системы контроля версий. Я новичок в C ++ и linux, но похоже, что упаковка скомпилированных приложений linux в пакеты .deb и .rpm для различных дистрибутивов linux также является очень распространенной потребностью в конвейере сборки. Я гуглил в течение нескольких часов и не могу найти никакой документации или ссылки на оптимизированный механизм в Трэвисе или где-либо еще, что облегчает это. Возможно, разработчики на C ++ привыкли делать подобные вещи сами и поэтому просто пишут сценарии в сборке.

Однако, когда вы пытаетесь настроить конвейер для новой команды и проекта с несколькими пакетами, каждый из которых нацелен на 5+ дистрибутивов и хочет протестировать полученные пакеты, это идеальный кандидат для конвейера CI. Мы хотим развернуть пакеты на Bintray, где у нас есть несколько репозиториев RPM и DEB, подготовленных для получения пакетов для различных дистрибутивов. Однако мы не можем найти следов широко используемого решения, которое берет скомпилированный артефакт и определение пакета, а затем сворачивает их и развертывает в этих репозиториях.

Есть ли у кого-нибудь простое в использовании и автоматизированное решение для сборки пакетов linux, поскольку они собраны в Travis перед развертыванием в хранилище?

1

Решение

Для этого вы можете использовать CPack — он позволяет вам написать общее описание пакета и построить rpm, deb и msi из описания.

1

Другие решения

Это может быть нелегко найти, потому что это тривиально, если у вас есть настроенные RPM-файлы, и именно здесь обнаруживается 95% проблем. 😉

У меня есть Jenkins, раскручивающий контейнеры Docker для каждой целевой ОС (CentOS 6, 7, Fedora 25) и собираю RPM. Он ничем не отличается от любого другого шага сборки «сценария оболочки», кроме как вместо вызова makeэто вызывает rpmbuild,

0

По вопросам рекламы [email protected]