Как использовать переменную env для блокировки нескольких этапов в декларативном конвейере - PullRequest
0 голосов
/ 31 января 2020

У меня есть два узла, каждый из которых подключен к нескольким устройствам, которые я хочу заблокировать как ресурсы. Я сгруппировал устройства в два пула с именем метки, совпадающим с NODE_NAME.

Насколько я понимаю, блокировка нескольких этапов возможна только путем установки блокировки в блоке параметров. Это, однако, означает, что я не могу использовать переменную 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}"
            }
        }
    }
}

Есть ли разумное решение для этого или я должен блокировать каждую стадию и молиться, чтобы не возникало никаких расовых условий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...