jenkins - 在 Jenkins 中并行运行相同的管道
问题描述
我对詹金斯比较陌生。我在 Jenkins 中创建了一个声明性管道,要求用户输入他们的分支名称,然后 Jenkins 构建该特定分支(例如,origin/mybranch)。这使我可以为特定分支运行一组快速测试。
开发人员可以多次运行管道,今天我阻止多个这样的管道同时运行,因为如果他们这样做,一个会覆盖另一个。
发生这种情况是因为第一个管道写入 c:\Jenkins\workspace\QuickBuild 并且当另一个这样的作业运行写入完全相同的文件夹时,会终止原始运行。
阻塞是我发现的防止这种情况的解决方案,但我希望它在一次运行完成时(使用少于 8 个内核),队列中的下一次运行将已经开始运行,并且释放了任何内核。
我会认为这将是 Jenkins 的基本概念。我错过了什么吗?我做错了吗?
解决方案
按照 MaratC 和 Zett42 的建议,我最终将其添加到我的脚本中:
agent
{
node {
customWorkspace "${params.Branch}"
}
}
这会导致 Jenkins 在不同的文件夹中创建每个构建,并且它们不会踩到彼此的脚趾。
唯一的缺点是您不能同时构建相同的分支,但这是一个极端情况。另外,我也可以向工作区添加一个随机数来启用它。
推荐阅读
- string - 搜索以小写开头后跟大写的字符串
- glsl - glsl 有一个错误:无法从“highp float”转换为“highp 3-component vector of float”
- installation - 文件夹名称中有空格时静默安装
- wordpress - 将contactform 7数据存储到用户中-wordpress
- tensorflow - 在移动 iOS 上运行 Faster-rcnn
- html - 与 SVG 相关的按钮位置 - 如何配置一致的位置
- kubernetes - k8s仪表板中的“失败”是什么意思
- c# - 使标签在winforms中可见5秒
- spring - 我无法发送包含来自另一个类的映射对象的 modelAttribute
- python - 如何在没有 biopython 的情况下将多行 fasta 文件转换为单行 fasta 文件