gpt4 book ai didi

build - 有没有办法让 Jenkins 共享一个公共(public)源代码目录/ checkout 位置以进行完整和增量构建?

转载 作者:行者123 更新时间:2023-12-01 02:25:33 26 4
gpt4 key购买 nike

我正在使用 Jenkins CI 作为我正在处理的项目的构建服务器,我还使用 Klocwork 作为静态分析工具来识别与我们的编码标准的偏差。

目前 Jenkins 有两个构建(在不同的目录中执行),一个在夜间进行的完整构建,它会清除工作区并执行全新的 checkout 和对所有内容的完全重建。
除了通宵构建之外,我还在 checkin 后 15 分钟内进行了增量构建。两个构建都使用了 Klocwork 分析工具。

Klockwork 通过显示潜在问题列表来工作,如果这些问题不适用于项目,则可以修复或选择忽略这些问题,当忽略问题时,Klocwork 使用构建文件路径来记住被忽略的问题所在的位置。这意味着当我在 Klocwork 中忽略完整构建中的警告并触发增量构建时,由于构建路径不同,警告再次返回。

我能看到的最明智的解决方案是让 Jenkins 每晚执行其完整构建,但增量构建在完整构建位置进行更新,然后进行增量构建 - 以与 IDE 相同的方式在 PC 上的功能。

问题是我让 Jenkins 将完整构建和增量构建作为两个单独的作业运行,这导致它们检查到不同的位置,我找不到让这两个作业共享一个公共(public)目录的方法。
此外,我找不到一种方法可以让单个作业执行每晚的完整 checkout 和重建,以及同时在 checkin 时进行更新的增量构建。

有没有人熟悉让 Jenkins 在多个作业中使用公共(public)源目录的方法?

非常感谢,

皮特。

最佳答案

这就是我所做的。

  • 使用一项工作仅检查源代码。
  • 在其他作业配置设置中,我设置了一个环境变量,该变量指向包含第一个作业源代码的工作区目录树(对 Jenkins 服务器的命令行访问有助于确定它在哪里,但不是必需的)。然后在常规作业中的 Jenkins 配置脚本中,我“cd”到该位置并使用环境变量作为所有文件的路径,因此这些其他作业将使用第一个作业的 checkout 代码。
  • 使用锁,因此常规作业不会与 checkout 代码作业同时运行。
  • 由于其中一些作业的具体情况,在源代码树中生成并创建了一些结果文件(由于正在运行的测试),因此在配置后操作脚本中,我将所需的结果复制/移动回工作区应该有它们的工作,所以我可以在正确的工作中处理这些结果。

  • 为我工作。

    关于build - 有没有办法让 Jenkins 共享一个公共(public)源代码目录/ checkout 位置以进行完整和增量构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16731002/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com