Jenkins / DSL:锁定管道作业块执行器

时间:2020-10-02 06:46:57

标签: jenkins jenkins-pipeline locking jenkins-job-dsl

我在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)

0 个答案:

没有答案
相关问题