Jenkins 锁定两个不同的资源
有没有办法使用可锁定资源插件锁定两个不同的资源 我想将我的作业配置为锁定标签“Apples”中的一个资源和标签“Pears”中的一个资源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
我正在使用最新的插件版本(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']])
{
// ...
}
}
}
}
}