锁定Jenkins中的多个外部资源

时间:2013-07-15 09:44:09

标签: resources jenkins external dispatcher

是否可以将多个外部资源锁定到Jenkins中的构建?我们尝试了External Resource Dispatcher Plugin但没有成功。

3 个答案:

答案 0 :(得分:0)

您还应该查看Lockable Resources Plugin

  

此插件允许定义构建可以使用的可锁定资源(例如打印机,电话,计算机等)。如果构建需要已锁定的资源,它将等待资源空闲。可以在全局和每个作业的基础上定义锁定优先级。

https://github.com/jenkinsci/lockable-resources-plugin

答案 1 :(得分:0)

尚不清楚您的问题是否只能通过External Resource Dispatcher插件解决(该插件似乎没有进行积极的开发),但如果您有能力使用chown指出的Lockable Resources插件,则可以简化this支持请求中指出的用于锁定Jenkins管道中多个命名资源的语法:

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']])
                {
                    // ...
                }
            }
        }
    }
}

答案 2 :(得分:0)

除了指定的主要资源外,还有一个名为extra的选项可以锁定资源。

lock(extra: [[resource: 'a']], resource: 'b') {
     //code
}

现在,“ a”或“ b”的任何其他锁将等待上述锁。

您可以在这里https://www.jenkins.io/doc/pipeline/steps/lockable-resources/

中找到更多信息