【发布时间】:2023-08-11 14:41:01
【问题描述】:
我对 Jenkins 比较陌生。 我在 Jenkins 中创建了一个声明性管道,要求用户输入他们的分支名称,然后 Jenkins 构建该特定分支(例如,origin/mybranch)。 这让我可以为特定的分支运行一组快速的测试。
开发人员可以多次运行管道,今天我阻止多个这样的管道同时运行,因为如果他们这样做,一个会覆盖另一个。
发生这种情况是因为第一个管道写入 c:\Jenkins\workspace\QuickBuild,而当另一个此类作业运行写入完全相同的文件夹时,会终止原始运行。
阻塞是我发现的防止这种情况的解决方案,但我希望这样当一个运行完成时(使用少于 8 个内核),队列中的下一个运行将已经开始运行,并且释放了任何内核。
虽然这将是 Jenkins 的一个基本概念,但我想。 我错过了什么吗?我做错了吗?
【问题讨论】:
-
您的构建需要单独的工作区。请参阅有关
workspace指令的文档。 -
通常情况下,Jenkins 会为项目的每次并行运行自动分配一个新的工作空间。如果您
echo WORKSPACE,您应该会看到每个额外的并行运行都会附加一个数字,例如c:\Jenkins\workspace\QuickBuild@2
标签: jenkins parallel-processing jenkins-pipeline workspace