Build 有没有办法让Jenkins为完整和增量构建共享一个公共源代码目录/签出位置?

Build 有没有办法让Jenkins为完整和增量构建共享一个公共源代码目录/签出位置?,build,jenkins,continuous-integration,Build,Jenkins,Continuous Integration,我正在使用Jenkins CI作为我正在处理的项目的构建服务器,我还使用Klocwork作为静态分析工具来识别与我们的编码标准的偏差 目前,Jenkins有两个构建(在单独的目录中执行),一个基于夜间的完整构建,它清除了工作区,并执行新的签出和所有内容的完整重建。 除了隔夜构建之外,我还有一个在签入后15分钟内发生的增量构建。两个版本都使用Klocwork分析工具 Klockwork的工作原理是显示一个潜在问题列表,如果这些问题不适用于项目,则可以修复或选择忽略这些问题。当问题被忽略时,Kloc

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

目前,Jenkins有两个构建(在单独的目录中执行),一个基于夜间的完整构建,它清除了工作区,并执行新的签出和所有内容的完整重建。 除了隔夜构建之外,我还有一个在签入后15分钟内发生的增量构建。两个版本都使用Klocwork分析工具

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

我能看到的最明智的解决方案是Jenkins每晚执行完整构建,但增量构建在完整构建位置执行更新,然后执行增量构建,就像PC上的IDE运行一样

问题是,我让Jenkins将完整构建和增量构建作为两个独立的作业运行,这会导致它们签出到不同的位置,我无法找到让这两个作业共享一个公共目录的方法。 此外,我也找不到一种方法,可以让一个作业执行夜间完整的签出和重建,以及同时执行签入更新的增量构建

有人熟悉让Jenkins跨多个作业使用公共源目录的方法吗

非常感谢,


Pete.

您可以轻松使两个构建共享同一个构建区域,
只需将两个构建作业中的文件提取到共享位置

我强烈建议不要这样做,因为您很快就会遇到这样的情况
夜间生成正在清理生成区域,而增量生成仍在运行
(或者增量构建在夜间仍在运行时检出源代码)

建议您仅将Klockwork连接到其中一个构建作业(可能是夜间)
因此,为了避免重复警告。

以下是我所做的

  • 使用一个作业仅签出源代码

  • 在“其他作业配置设置”中,我设置了一个环境变量,该变量指向包含第一个作业源代码的工作区目录树(在这里,对Jenkins服务器的命令行访问有助于确定其位置,但不是必需的)。然后,在常规作业的Jenkins配置脚本中,我将“cd”到该位置,并使用环境变量作为所有文件的路径,以便这些其他作业将使用第一个作业的签出代码

  • 使用了锁,因此常规作业不会与签出代码作业同时运行

  • 由于某些作业的具体情况,在源代码树中生成并创建了一些结果文件(由于正在运行的测试),因此在config post action脚本中,我将所需结果复制/移动回作业的工作区,以便在正确的作业中处理这些结果

  • 为我工作