我有两个节点,每个节点都连接到多个设备,我想将其锁定为资源。 我将设备分为两个池,标签名称与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}"
}
}
}
}
是否有一个明智的解决方案,还是我必须锁定每个阶段并祈祷没有比赛条件发生?