如何保持jenkins构建的工作区没有存储/解除

时间:2018-01-24 08:52:59

标签: jenkins jenkins-pipeline workspace

我已将多个阶段的构建分开,这些阶段都包含在自己的节点块中。 如果jenkins实例上存在大量活动,那么可以在这些阶段暂停构建,但是当执行程序可用时它们应该继续。

+------+-----------------------------------+----------------+
| Val  | ShouldBe                          | ComputedMonths |
+------+-----------------------------------+----------------+
| 1    | 1 year                            | 12             |
+------+-----------------------------------+----------------+
| 1.0  | 1 year                            | 12             |
+------+-----------------------------------+----------------+
| 1.1  | 1 year 1 month                    | 13             |
+------+-----------------------------------+----------------+
| 1.10 | 1 year 10 months                  | 22             |
+------+-----------------------------------+----------------+
| .1   | 1 month                           | 1              |
+------+-----------------------------------+----------------+
| 0.1  | one month                         | 1              |
+------+-----------------------------------+----------------+
| 3.12 | 3 years 12 months (one more year) | 48             |
+------+-----------------------------------+----------------+

此方法与milestonelock一起使用可以取消等待时间过长的构建。

现在我们的问题是,对于多个节点块,文档说您必须有stash / unstash个文件来保存最后一个工作区中生成的结果。现在,我们的工作区包含许多文件,这些文件需要花费5到10分钟的时间来存储/解除,这会扼杀所有其他性能提升。

有没有办法有效地保留最后一个工作区,直到构建完成。只停留在同一节点上没有帮助,因为如果刚刚暂停旧版本,可以将同时启动的构建分配给同一工作区

stage('one'){
   node { ... }
}
// free up the executor if many other builds are running
stage('two'){
   node { ... }
}

我看到可能强制使用工作区的唯一方法是external workspace manager插件或ws步骤。 但是后来我将失去并发构建的默认自动重定位功能,我需要自己处理清理工作,因为在删除构建时不会删除这些工作区。

任何想法如何在离开节点后保持工作区?

0 个答案:

没有答案