像TravisCI这样的CI服务可以自动构建和测试来自源代码管理的应用程序。我是C ++和Linux的新手,但似乎将编译好的linux应用程序包装成各种Linux发行版的.deb和.rpm包也是构建管道的一个非常普遍的需求。我用Google搜索了几个小时,在Travis或其他地方找不到任何文档或参考简化的机制,这使得这很容易。也许C ++开发人员习惯于自己做这种事情,所以他们只是在构建中编写脚本。
但是,当尝试为具有多个软件包的新团队和项目设置管道时,每个软件包都针对5个以上的发行版,并且想要测试生成的软件包,它是CI管道的理想选择。我们想在Bintray上部署软件包,我们有几个RPM和DEB存储库准备接收各种发行版的软件包。但是,我们找不到广泛使用的解决方案的痕迹,该解决方案采用编译的工件和包定义,然后将它们卷起来并将它们部署到这些存储库中。
是否有人有一个易于使用且自动化的解决方案来构建Linux软件包,因为它们是在部署到存储库之前在Travis中构建的?
答案 0 :(得分:1)
您可以使用CPack - 它允许您编写一般包描述并根据描述构建rpm,deb和msi。
答案 1 :(得分:0)
可能不容易找到,因为一旦你设置了RPM规范文件就很简单了,这就是95%的问题出现的地方。 ;)
我让Jenkins为每个目标操作系统(CentOS 6,7,Fedora 25)启动Docker容器并构建RPM。它与任何其他“shell脚本”构建步骤没有什么不同,除了调用make
之外,它调用rpmbuild
。