当前位置: 首页 > 面试题库 >

Jenkins项目工件和工作区

马琛
2023-03-14
问题内容

我已经使用詹金斯了很多年了,但是我从来没有自己设置它,就像我在新工作中所做的那样。我遇到了几个问题。

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

在project > Build_ID页面上显示工作区
-与以前的工作区一致,我希望以前的版本的每个“工作区”都将显示在这里。目前,在我的设置中,该单独页面除了Git修订版和什么版本库更改触发了构建之外,什么都没有给您。以及控制台输出。文物在哪里?所使用的此版本的工作空间的链接在哪里?

在构建中归档工件
-选择工件时,过滤器似乎不起作用。我的构建在工作空间内的工件中创建了一个文件结构。我想存储它,工件过滤器说它开始于工作空间。所以我放入了“工件”,没有东西得到存储(这将存储在什么地方?)。我也尝试过’/
artifacts’和’artifacts / *’。

任何帮助将是巨大的!谢谢!


问题答案:

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

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

因此,以下是有关此主题的一些想法:

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

希望这可以帮助。



 类似资料:
  • 默认工作区位置-最新的Jenkins似乎在Jenkins\jobs[projectName]\workspace中有默认的工作区,并且在每次构建时都被覆盖(如果选中,则被删除)。我认为它应该放在Jenkins\jobs[projectName]\build[build_id]\中,这样它就可以存储每个构建的工作区状态,以供将来参考? 在project>build_id页面上显示工作区--这与前面的

  • 我试图设置jenkins-kubernetes插件创建Jenkins动态奴隶。 我的詹金斯在K8s集群外运行。 链接:https://github.com/jenkinsci/kubernetes-plugin 我的jenkins版本是2.60.2和Kubernetes插件版本是1.1.2 我按照自述文件中提到的步骤成功地建立了连接。 Kubernetes没有豆荚开始。这很奇怪。 我不确定我做错了

  • 我正在做一个使用Maven 3.0.4的项目。 一个示例项目结构 我们使用artifactory作为存储库管理工具,使用Jenkins作为CI构建服务器。artifactory/Jenkins插件也已安装。 如果我在Jenkins中将一个项目设置为Maven 2/3人力资源模型项目,并添加一个构建后步骤以部署到artifactory,那么一个jar工件就会部署到artifactory。 对模型项目

  • 无论是建立一个全新的本地仓库(local repository)或是克隆一个远程仓库(remote repository)到本地计算机,这两者并没有多大的区别。现在在你的计算机上已经拥有了一个 Git 本地仓库了。这也就意味着你可以在这个项目上开始你的工作了,使用任何一个你常用的编辑器来完成对项目文件的修改、创建、删除、移动、拷贝或者是重命名。 概念 文件的状态 一般情况下在 Git 中文件有两种

  • 其它非核心有用功能,例如:组合多个业务。 fabric.contrib.project.rsync_project(*args, **kwargs) 使用 rsync 讲远程路径和本地项目同步。 upload_project() 使用 scp 来复制整个项目,rsync_project() 会使用 rsync 命令,只会将本地比远程更新的文件同步过去。 rsync_project() 只是一个简单

  • 我最近从Maven转到了Gradle。到目前为止,我的Jenkins声明性管道包括一个阶段,在这个阶段我们生成了打包的工件并将其发布到Nexus: 通过这种方式,我们使用构建工具(Maven)使用它的一个插件(Maven deploy plugin)来部署工件。使用Nexus Jenkins插件,我们可以解耦这些功能,这对我来说是有意义的:Gradle负责构建、测试和打包工件,而Jenkins N