Jenkins项目工件和工作区

Jenkins项目工件和工作区,jenkins,Jenkins,我已经用詹金斯好几年了,但从来没有像我在新工作时那样自己安装过。我遇到了一些问题 默认工作区位置-最新的Jenkins似乎在Jenkins\jobs[projectName]\workspace中具有默认工作区,并且在每次生成时都会被覆盖(或删除,如果选中)。我认为它应该放在Jenkins\jobs[projectName]\builds[build\u id]\中,以便能够存储每个构建的工作区状态以供将来参考 在项目>构建ID页面上显示工作区-这与之前的构建一起进行,正如我所期望的,之前构建的

我已经用詹金斯好几年了,但从来没有像我在新工作时那样自己安装过。我遇到了一些问题

默认工作区位置-最新的Jenkins似乎在Jenkins\jobs[projectName]\workspace中具有默认工作区,并且在每次生成时都会被覆盖(或删除,如果选中)。我认为它应该放在Jenkins\jobs[projectName]\builds[build\u id]\中,以便能够存储每个构建的工作区状态以供将来参考

在项目>构建ID页面上显示工作区-这与之前的构建一起进行,正如我所期望的,之前构建的每个“工作区”都会显示在这里。目前在我的设置中,这个单独的页面除了Git版本和触发构建的repo更改之外,什么都没有。以及控制台输出。文物在哪里?指向所使用的此生成工作区的链接在哪里

归档构建中的工件-选择工件时,过滤器似乎不起作用。我的构建在工作区内创建一个文件结构,其中包含工件。我想存储它,工件过滤器说它从工作区开始。所以我放了“工件”,什么都没有得到存储(这也会存储在哪里?)。我还尝试了“/artifacts”和“artifacts/*”


任何帮助都会很好!谢谢

你似乎确实对詹金斯的几个方面感到困惑。。我认为你的问题基本上可以归结为以下几点

工作区和构建之间有什么区别?

因此,以下是关于这个话题的一些想法:

  • 构建是历史数据。它们(通常)不会像工作区在构建/签出期间那样发生更改
  • 构建包含有关运行的信息(例如,运行状态、构建编号、更改日志等)以及您告诉它要存档的任何工件(日志、测试结果等)。它们(通常)不像工作区那样包含源代码
  • 生成存储在
    Jenkins\jobs\[projectName]\Builds\[build\u id]\
    目录中。这是一个由Jenkins管理的目录,您(通常)不需要修改该目录中的任何内容。但是,工作区是用于构建的目录,您几乎可以对它们执行任何操作并将它们放置在任何位置(它不需要位于默认的
    Jenkins\jobs\[projectName]\workspace
    目录中)
  • 工作区应该能够在任何给定时间被擦除。要恢复它,只需使用相同的参数/版本重新生成作业。如果在生成后需要保留某些内容,请告诉Jenkins在生成完成之前将其存档
  • 关于保存整个状态,我认为您不需要这样做。如#4中所述,您应该能够通过启动与所讨论的构建相同的修订/参数来复制相同的构建。如果您无法从相同的修订/参数恢复到原始状态,那么这可能是调试时需要努力的事情这将是一场噩梦。:)
  • 工作区是项目的一个方面,而不是构建,这就是为什么该页面没有指向工作区的链接。同样,构建只是保存了上一次运行的数据。项目使用工作区来构建内容,这就是为什么您可以从该页面访问工作区
  • 关于如何保存工件,必须指定要保存的文件的名称。除非您试图保存一个名为“artifacts”的文件,否则您可能应该使用其他文件。所有日志文件的
    ***.log
    如何?还是所有xml文件的
    ***.xml

  • 希望这能有所帮助。

    我理解构建和工作区之间的区别。但是您文章的其余部分确实有助于解释源代码不应该存储在工件中。而且匹配在你的#7中也有帮助,我不明白为什么它应该是那种格式。谢谢。很高兴听到这有点帮助!很抱歉误解了你的根本问题。。关于#7,归档工件使用来匹配文件。。。如果您想要一些ant文件集的示例,那么我会去看看。Linux机器中默认的
    工作区
    位置是
    /var/lib/jenkins/workspace
    。对于任何感兴趣的人来说,要将内容直接放入构建的工件中并在构建页面上引用它们,只需创建一个名为“archive”的文件夹在内部版本号中,手动或通过批处理脚本将文件放置在其中。