Jenkins 锁定两个不同的资源

Jenkins 锁定两个不同的资源,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,有没有办法使用可锁定资源插件锁定两个不同的资源 我想将我的作业配置为锁定标签“Apples”中的一个资源和标签“Pears”中的一个资源 我正在使用最新的插件版本(1.11.2)和jenkins 2.251,但找不到如何做到这一点。如果使用自由式作业类型,我不确定这是否可行。然而,如果您使用的是管道,您应该能够嵌套。例如: lock('apple') { lock('pear') { // Now we have exclusive access to both resources

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

我想将我的作业配置为锁定标签“Apples”中的一个资源和标签“Pears”中的一个资源


我正在使用最新的插件版本(1.11.2)和jenkins 2.251,但找不到如何做到这一点。

如果使用自由式作业类型,我不确定这是否可行。然而,如果您使用的是管道,您应该能够嵌套。例如:

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

在这个GitHub中,似乎有一种更为精确的语法来锁定多个命名资源:


谢谢你的回答。不幸的是,由于其他原因,我无法在设置中使用管道。我的问题是,我想并行运行几个小测试作业,并希望父作业保持锁定。使用管道,我找不到如何使用“并行”步骤并将其包装为“锁定”步骤。如果您有任何提示,请告诉我。如果您使用的是声明式管道,那么您可能无法做到这一点;否则的话,我想它应该会起作用。
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']])
                {
                    // ...
                }
            }
        }
    }
}