C ++构建工件管理

时间:2012-12-13 14:33:20

标签: c++ jenkins continuous-integration artifacts

我们正在将构建和测试系统转移到Jenkins,并且正在寻找一种简单的方法(我们不必自己编写所有逻辑代码)来管理构建工件。

基本上我们需要一种有条理的方式来按照构建类型,构建它的用户等顺序存储它们,例如:

johnd/nightly/r543241/win32/program.zip
johnd/nightly/trunk/lin64/program.tar.gz
master/release/2.1/win32/program.zip

这样我们就可以在构建完成时上传,并轻松地在测试阶段检索所需的工件。

到目前为止,我们只是将文件存储在NFS目录中,但最近开始考虑使用工件管理器。我看过Artifcatory,Archiva和Nexus。但所有看起来都非常以Java为中心,或者至少需要maven才能使用。因为我不想引入更多复杂性(我们主要使用python,scons是我们的构建工具)而且我不想将maven引入混合中,我正在寻找具有简单命令行的东西(或者更好的REST / Python接口)来上传,下载和管理工件。

如果您不使用工件管理器,但使用其他一些聪明的方法来管理C ++工件以满足发布/测试需求,我也很高兴听到它。

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题。我没有成功整合神器,所以我忘了它。

目前我使用copy artefact插件将scp文件复制到NFS共享。但这不是一个好的解决方案,因为可能在两台机器上以不同方式安装共享,并且Windows无法直接访问它们。

但真正的工件经理对我们的项目来说会是一件好事。

在我之前的工作中,我使用的是CMS(LiveLink)文档,它提供了良好的服务: - 自组织文件夹。 - 持久性URL(我们可以移动,重命名文件夹和文件,给定文件的公共URL永远不会改变,这太棒了:“http:// server / go / 123456789123456789”总是指向同一个文件。所以你刚才有给这个网址wget你得到的文件 - 文件版本控制。 - 元数据,高级搜索

我仍然在开源软件中搜索这样的解决方案而找不到它。

在你只需要在两个作业之间共享artefact,简单地使用“copy artifact for another build”插件。我用它将我的工作分成一个构建工作和一个测试工作(实际上有三个测试工作,一个在每次提交后非常快速完成,一个非常慢,每周完成,一个非常慢,每周结束)。