我在Jenkins上使用DSL插件来创建自由样式和管道作业。这两个作业都需要可锁定的资源。
在管道作业中,我在选项部分中配置了锁定。它可以工作,但是每次作业等待获取锁时,都会使用并阻止执行程序。等待时间被添加到构建时间中。从逻辑上讲,这种行为对我来说很清楚。
pipeline {
...
options {
lock resource: 'resource_lock'
}
...
}
对于自由式作业,我配置了选项“此版本需要可锁定的资源”。自由样式作业代替了管道作业,而是在构建队列中等待并且不会阻塞执行程序。对我来说,更好的解决方案。
job(jobname) {
lockableResources('HolyGrail')
...
如果我尝试在DSL配置中使用lockableResource()
进行管道作业,那么它将无法正常工作。
pipelineJob(jobname) {
lockableResources('HolyGrail')
...
我收到错误消息ERROR: (job1.dsl, line 7) No signature of method: javaposse.jobdsl.dsl.jobs.WorkflowJob.lockableResources() is applicable for argument types: (java.lang.String) values: [res1]
流水线作业和自由式作业是否有相同的等待行为?我不会只等待执行者而阻止它。还有其他(更好的)解决方案吗?
谢谢 安德烈亚斯(Andreas)