我目前正在学习Jenkins和Pipeline的来龙去脉。我还不了解的一件事是:
默认情况下,Jenkins作业可以同时执行(如果我不想这样做,可以选中“不允许并发构建”复选框)。
我不明白的是以下内容:假设Jenkins在 /var/lib/jenkins/workspace/my-project-workspace/
现在如何在没有冲突的情况下运行并发构建?假设build nr 1检出该路径中的代码并开始对其进行测试,而这样做的同时,build nr 2启动并检出该路径中的代码。那将不会与build nr 1冲突?我可能在这里缺少明显的东西...请帮助:)
workspace/文件夹内的子目录并不总是您的项目名称,而是(随机)生成的目录名称。这就是所有的魔术。
小智 6
选中此选项后,可以并行执行该项目的多个构建。
\n默认情况下,一次仅执行项目的单个构建 \xe2\x80\x94 开始构建该项目的任何其他请求都将保留在构建队列中,直到第一个构建完成。\n这是一个安全的默认值,因为项目通常需要对某些资源(例如数据库或硬件)进行独占访问。
\n但启用此选项后,如果有足够的可用构建执行器可以处理该项目,则该项目的多个构建将并行进行。如果在任何时候都没有足够的可用执行器,则任何进一步的构建请求都将照常保留在构建队列中。
\n启用并发构建对于执行冗长测试套件的项目非常有用,因为它允许每个构建包含较少数量的更改,而总周转时间会减少,因为后续构建不需要等待先前的测试运行完成。\n此功能对于参数化项目也很有用,其单独的构建执行 \xe2\x80\x94 取决于所使用的参数 \xe2\x80\x94 可以完全相互独立。
\n每个并发执行的构建都发生在其自己的构建工作区中,与任何其他构建隔离。默认情况下,Jenkins 将“@”附加到工作区目录名称,例如“@2”。\n启动 Jenkins 时,可以通过设置 hudson.slaves.WorkspaceList Java 系统属性来更改分隔符“@”。例如,“hudson.slaves.WorkspaceList=-”会将分隔符更改为连字符。\n有关设置系统属性的详细信息,请参阅 wiki 页面。
\n但是,如果启用“使用自定义工作区”选项,则所有构建都将在同一工作区中执行。因此需要小心,因为多个构建可能最终会同时更改同一目录。在此输入图像描述
\n| 归档时间: |
|
| 查看次数: |
4088 次 |
| 最近记录: |