Jenkins在声明管道中将资源锁定多个阶段

时间:2020-09-23 19:13:12

标签: jenkins jenkins-pipeline jenkins-plugins devops jenkins-groovy

有什么方法可以锁定Jenkins声明式管道中的多个顶级阶段? 我希望锁定两个顶级阶段,以便能够在这些阶段上使用“从阶段重新启动”。 现在我有这样的东西:

pipeline {
stages {
    stage('Build') {
        agent { node { label 'node1' } }  
        stages{
            stage(build_1){
                ...
            }
            stage(build_2){
                ...
            }
            ...
        }
    }

    stage('Load FW') {
        agent { node { label 'node2' } } 
        options {
            lock(resource: "board")
        }
        steps {
            ...
        }
    }
    
    stage('Test') {
        agent { node { label 'node2' } } 
        options {
            lock(resource: "board")
        }
        steps {
            ...
        }
    }
}

在那种情况下,当从“加载固件”到“测试”阶段时,资源被解锁,并且如果还有其他构建等待资源,它将锁定它(FIFO)。然后解锁后,返回“测试”,但在“ node2”上有其他内容。 当在这两个阶段的顶部添加锁(资源:“板”)时,我会收到错误消息:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 10: Expected a stage @ line 10, column 9.
           lock(resource: 'myResource') {

我还希望能够在“构建”阶段运行并发构建,因此在这种情况下,disableconcurrentbuilds()并不是一个选择。 知道如何使其正常工作吗?

0 个答案:

没有答案