Jenkins项目工件和工作区

Tac*_*s86 12 jenkins

我已经使用了jenkins很多年了,但是我从来没有自己设置过我在新工作中做过的事情.我遇到了几个问题和问题.

默认工作空间位置 - 似乎最新的Jenkins在Jenkins\jobs [projectName]\_工作空间中具有默认工作空间,并且每次构建都会覆盖(或擦除,如果选中).我认为它应该在Jenkins\jobs [projectName]\builds [build_id] \中,以便它能够存储每个构建的工作区状态以供将来参考吗?

在项目> Build_ID页面上显示工作空间 - 这与之前的预期相同,因为我预期在此处显示先前构建的每个"工作空间".目前在我的设置中,除了Git修订版以及触发构建的repo更改之外,这个单独的页面不会给你任何东西.以及控制台输出.文物在哪里?使用此构建的工作空间的链接在哪里?

在构建中存档工件 - 选择工件时,过滤器似乎不起作用.我的构建创建了一个文件结构,其中包含工作区内的工件.我想存储这个,工件过滤器说它从工作区开始.所以我放入'工件',没有任何东西可以存储(也存储在哪里?).我也试过'/ artifacts'和'artifacts/*'.

任何帮助都会很棒!谢谢!

Dan*_*oto 20

看起来你对Jenkins的几个方面感到困惑.我认为你的问题基本归结为以下几点.

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

所以,这里有一些关于这个主题的想法:

  1. 构建是历史数据.它们(通常)在建造/结账期间不像工作空间那样改变.
  2. 构建包含有关运行的信息(例如,其状态,构建号,更改日志等)以及您告知其归档的任何工件(日志,测试结果等).它们(通常)不包含工作空间等源代码.
  3. 构建存储在Jenkins\jobs\[projectName]\builds\[build_id]\目录中.这是Jenkins管理的目录,您(通常)不需要修改此目录中的任何内容.但是,工作空间是用于构建的目录,您可以使用它们执行任何操作并将它们放在任何位置(它不需要位于默认Jenkins\jobs\[projectName]\workspace目录中).
  4. 应该可以在任何给定时间擦除工作区.要恢复它,只需使用相同的参数/修订版重建作业.如果你需要在构建之后保留一些内容,请告诉Jenkins在构建完成之前将其存档.
  5. 关于拯救整个国家,我认为你不需要这样做.如#4中所述,您应该能够通过启动与相关构建相同的修订/参数来重现相同的构建.如果你无法从相同的版本/参数回到原始状态,那么这可能是一个需要努力的事情,因为调试将成为一场噩梦.:)
  6. 工作空间是项目的一个方面,而不是构建,这就是为什么没有从该页面到工作空间的链接.同样,构建只是从先前运行中保存的数据.项目使用工作区来构建内容,这就是您可以从该页面进入工作区的原因.
  7. 关于如何保存工件,您必须指定要保存的文件的名称.除非您尝试保存名为"artifacts"的文件,否则您应该使用其他内容.如何**/*.log对所有日志文件?还是**/*.xml对于所有xml文件?

希望这可以帮助.

  • Linux 机器中默认的“workspace”位置是“/var/lib/jenkins/workspace” (3认同)