锁定两个不同的资源

时间:2017-03-20 15:06:40

标签: jenkins jenkins-plugins

有没有办法使用可锁定资源插件锁定两个不同的资源?

我想配置我的工作来锁定标签中的一个资源" Apples"和标签中的一种资源" Pears"。

我使用的是最新的插件版本(1.11.2)和jenkins 2.251,并且无法找到如何做到这一点。

2 个答案:

答案 0 :(得分:1)

如果使用Freestyle作业类型,我不确定是否可行。但是,如果您正在使用管道,则应该能够嵌套lock steps。例如:

lock('apple') {
  lock('pear') {
    // Now we have exclusive access to both resources
  }
}

答案 1 :(得分:0)

当开发人员在此GitHub issue上指向时,似乎有一种更简洁的语法来锁定多个命名资源:

pipeline {
    agent any
    options {
         // Pipeline scoped multiple resource lock
        lock(extra: [[resource: 'resa'], [resource: 'resb']])
    }
    stages {
        stage('Build') {
            steps {
                 // Stage scoped multiple resource lock
                lock(extra: [[resource: 'resc'], [resource: 'resd']])
                {
                    // ...
                }
            }
        }
    }
}