运行 在 Jenkins 中并行执行相同的管道
Run same pipeline in parallel in Jenkins
我对 Jenkins 比较陌生。
我在 Jenkins 中创建了一个声明性管道,要求用户输入他们的分支名称,然后 Jenkins 构建该特定分支(例如,origin/mybranch)。
这使我能够 运行 一组针对特定分支的快速测试。
开发人员可以多次 运行 管道,今天我阻止多个这样的管道同时 运行ning 因为如果他们这样做,一个会覆盖另一个。
发生这种情况是因为第一个管道写入 c:\Jenkins\workspace\QuickBuild 并且当另一个这样的作业 运行 写入完全相同的文件夹时,杀死了原来的 运行.
阻塞是我发现的防止这种情况的解决方案,但我希望这样当一个 运行 完成时(使用少于 8 个内核)队列中的下一个 运行 已经开始运行 释放的所有内核。
我希望这是 Jenkins 的基本概念。
我错过了什么吗?我做错了吗?
根据 MaratC 和 Zett42 的建议,我最终将此添加到我的脚本中:
agent
{
node {
customWorkspace "${params.Branch}"
}
}
这会导致 Jenkins 在不同的文件夹中创建每个构建,并且它们不会踩到彼此的脚趾。
唯一的缺点是您不能同时构建同一个分支,但这是一个极端情况。
此外,我还可以向工作区添加一个随机数以启用此功能。
我对 Jenkins 比较陌生。 我在 Jenkins 中创建了一个声明性管道,要求用户输入他们的分支名称,然后 Jenkins 构建该特定分支(例如,origin/mybranch)。 这使我能够 运行 一组针对特定分支的快速测试。
开发人员可以多次 运行 管道,今天我阻止多个这样的管道同时 运行ning 因为如果他们这样做,一个会覆盖另一个。
发生这种情况是因为第一个管道写入 c:\Jenkins\workspace\QuickBuild 并且当另一个这样的作业 运行 写入完全相同的文件夹时,杀死了原来的 运行.
阻塞是我发现的防止这种情况的解决方案,但我希望这样当一个 运行 完成时(使用少于 8 个内核)队列中的下一个 运行 已经开始运行 释放的所有内核。
我希望这是 Jenkins 的基本概念。 我错过了什么吗?我做错了吗?
根据 MaratC 和 Zett42 的建议,我最终将此添加到我的脚本中:
agent
{
node {
customWorkspace "${params.Branch}"
}
}
这会导致 Jenkins 在不同的文件夹中创建每个构建,并且它们不会踩到彼此的脚趾。
唯一的缺点是您不能同时构建同一个分支,但这是一个极端情况。 此外,我还可以向工作区添加一个随机数以启用此功能。