如何使用env变量在声明式管道中锁定多个阶段

时间:2020-01-31 09:14:06

标签: jenkins jenkins-pipeline

我有两个节点,每个节点都连接到多个设备,我想将其锁定为资源。 我将设备分为两个池,标签名称与NODE_NAME相匹配。

据我了解,只有通过在options块中设置锁定,才能锁定多个阶段。但是,这意味着我不能使用env.NODE_NAME变量来设置标签。

这是我要实现的目标:

pipeline {
    agent any
    options {
        lock(resource: null, label: env.NODE_NAME, variable: 'DEVICE', quantity: 1)
    }
    stages {
        stage('Installation') {
            steps {
                echo "Install ${env.DEVICE}"
            }
        }
        stage('Test') {
            steps {
                echo "Test ${env.DEVICE}"
            }
        }
    }
}

是否有一个明智的解决方案,还是我必须锁定每个阶段并祈祷没有比赛条件发生?

0 个答案:

没有答案