3

我们正在将我们的构建和测试系统转移到 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++ 工件以满足发布/测试需求,我也会很高兴听到这一点。

4

1 回答 1

0

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

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

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

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

我仍在开源软件中寻找这样的解决方案,但没有找到。

在您只需要在两个作业之间共享工件时,只需使用“为另一个构建复制工件”插件即可。我用它把我的工作分成一个构建工作和一个测试工作(实际上有 3 个测试工作,每次提交后完成一个非常快的工作,每天完成一个非常慢的工作,每个周末完成一个非常慢的工作)。

于 2013-01-24T09:26:08.000 回答