当前位置: 首页 > 知识库问答 >
问题:

Jenkins能否在每次执行时加载共享库而不重新控制它们?

曹泉
2023-03-14

我发现Jenkins共享(Groovy)库的名称有点混乱和讽刺,因为我发现Jenkins会为每个构建克隆共享库存储库,是的,为每个执行克隆相同的代码。

这与共享库的概念背道而驰:因为这些是由多个使用者加载的代码片段。想象一下,当您尝试加载任何已加载的库时,如果操作系统复制该库,情况会如何。。。(是的,每天数千人)

有没有办法避免这种严重的资源过载?

参考:

  • https://jenkins.io/doc/pipeline/steps/workflow-cps-global-lib/
  • https://jenkins.io/blog/2017/06/27/speaker-blog-SAS-jenkins-world/

共有1个答案

吕钧
2023-03-14

我认为目前没有办法避免这种情况,但我同意这将是一个巨大的好处。

Jenkins应该缓存共享库,并且只拉取Jenkinsfile中引用的最新分支。

本地缓存的共享库的另一个巨大好处是,除了节省不断的克隆开销外,还可以独立于存储库。Jenkins应该能够使用它缓存的最后一个共享lib版本——即使存储库已关闭。目前,如果您有不仅构建而且还部署的管道,那么您的部署过程取决于共享库存储库的可用性——但理想情况下,即使git存储库关闭,也可以部署已经构建的包。

 类似资料:
  • 问题内容: 我正在使用Ionic Framework开发应用程序,并且有多个视图。路由名称是 app.view1 和 app.view2 。我使用控制器切换到下一个视图,当我单击返回时,app.view1的控制器不再执行,这在我的应用程序中非常重要。 请告诉我如何在每次路由到控制器时执行它。 问题答案: Ionic缓存视图以提高性能。它使用的功能。 Ionic最多可以缓存10个视图,不仅可以配置它

  • 我有一个CMACE项目,它的下一个结构是: 输出树为: 如果我在linux下编译程序,所有的工作都很完美,但是当我在Windows下做的时候,编译很好,但是app.exe不执行;我得到下一个错误: 我怀疑不要链接internal.cpp,因为当我将它的过程移到internal.h中时,就可以很好地工作。 有什么需要帮忙的吗? 以下是文件:root::cmakelists.txt app::cmak

  • 问题内容: 目前,我有一个Angular.js页面,它允许搜索并显示结果。用户单击搜索结果,然后单击“后退”按钮。我希望再次显示搜索结果,但是我不知道如何触发搜索执行。详细信息如下: 我的Angular.js页面是一个搜索页面,带有一个搜索字段和一个搜索按钮。用户可以手动键入查询并按下按钮,然后会触发ajax查询并显示结果。我用搜索词更新了网址。一切正常。 用户单击搜索结果,然后转到另一个页面-效

  • 问题内容: 我在Jenkins管道的共享库中有一个方法。想法是使用该库并将文件上传到远程主机。该库将导入到单例库中。 实例化的类如下所示: 即使我在日志中看到该行。我看不到命令正在执行。我缺少某种无法调用的功能吗? 编辑 当我直接在库中使用时,它可以工作。 但是,尝试使用时不起作用。 我得到的异常是: 问题答案: 如此处所述,您需要捕获stdout / stderr才能 _看到_任何内容。 至少:

  • 我试图安装一个库,但运行make后出现以下错误。如何用标志重新编译? 使目标pwrutils的扫描依赖项链接CXX共享库libpwrutils.so/usr/bin/ld://usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../../x86_64-linux-gnu/libboost_system.a(error_code.o):在创建共享对象时不能使用针对`

  • 问题内容: 我正在做centos。我在系统上安装了1.45.0 Boost版本。程序已正确编译,但是每当我键入命令以查看输出时,就会出现以下错误: ./a.out:加载共享库时出错:libboost_thread.so.1.45.0:无法打开共享库文件:没有此类文件或目录 问题答案: 您是如何安装Boost库的? 您可能遇到的问题是链接器找不到库,并且在构建程序时,必须手动指定其他库路径来搜索库。