我已将多个阶段的构建分开,这些阶段都包含在自己的节点块中。 如果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 |
+------+-----------------------------------+----------------+
此方法与milestone和lock一起使用可以取消等待时间过长的构建。
现在我们的问题是,对于多个节点块,文档说您必须有stash / unstash个文件来保存最后一个工作区中生成的结果。现在,我们的工作区包含许多文件,这些文件需要花费5到10分钟的时间来存储/解除,这会扼杀所有其他性能提升。
有没有办法有效地保留最后一个工作区,直到构建完成。只停留在同一节点上没有帮助,因为如果刚刚暂停旧版本,可以将同时启动的构建分配给同一工作区
stage('one'){
node { ... }
}
// free up the executor if many other builds are running
stage('two'){
node { ... }
}
我看到可能强制使用工作区的唯一方法是external workspace manager插件或ws步骤。 但是后来我将失去并发构建的默认自动重定位功能,我需要自己处理清理工作,因为在删除构建时不会删除这些工作区。
任何想法如何在离开节点后保持工作区?