0

我们组织的自定义构建工具会写出大量中间数据,如果 Hudson 能够检测到哪些文件是作为构建的一部分创建的并将这些文件存档,我会很高兴。我不确定它是否已经这样做了,但是如果确实如此,则没有用户可见的解释,当然删除构建并不会删除其输出。

详细来说,这就是我想要的。假设我从一个裸工作区开始。在构建 1 之后,我有这个:

ws/
  src/...
  obj/
    1/...
  log/
    1/...
  pkg/
    pkg-1.tgz

现在,我运行构建 2:

ws/
  src/...
  obj/
    1/...
    2/...
  log/
    1/..
    2/..
  pkg/
    pkg-1.tgz
    pkg-2.tgz

源代码被检出到ws/src每个构建中;有一个自定义结帐过程,所以我不能使用 svn RCS 方法:/。

当我删除构建时,我想删除来自该构建的所有内容。我可以这样做吗?

4

3 回答 3

2

Hudson 的方法是在构建开始时清理所有临时文件,然后使用 Hudson 的 artifacts 存档工具保存每个构建的输出 - 为“Archive the Artifacts”帖子指定 pkg/**/*.tgz构建步骤,然后 tgz 文件将全部复制到作业特定的存储区域。

工作区只是一个工作区 - 它不适合长期存储。

于 2009-07-16T17:37:00.137 回答
1

如果我站在你的立场上,我会做的是以不同的方式解决问题。我会编写一个任务或脚本,专门删除您不想保留的所有内容,并在每个作业结束时运行该任务或脚本。

Hudson 假设您正在自己清理临时文件。如果这没有发生,我认为 Hudson 没有任何设施可以帮助您。

于 2009-02-17T21:59:45.210 回答
0

如果不了解您的“自定义签出过程”就很难回答,但通常项目的所有构建工件都是在 src 之外的单个目录下创建的,例如“构建”或“目标”。

这样,项目的“干净”目标可以简单地删除该目录,并且您可以指示 Hudson 为每个构建包含此目标。

看起来您的构建工件包含在与“src”相关的多个目录中:“obj”、“log”和“pkg”。你能引入一个“干净”的目标来明确删除这些目录中的每一个吗?

于 2009-02-14T19:24:48.163 回答