Переменная окружения не найдена в файле jenkinsfile

#jenkins #groovy

Вопрос:

Мой файл Дженкинса начинается примерно с этого:

 pipeline {
    environment {
      stackName = "jenkins5"
    }

    agent any
    options {
        lock(resource: "${stackName}", inversePrecedence: false)
    }
 

Когда я выполняю соответствующую работу, я получаю

 groovy.lang.MissingPropertyException: No such property: stackName for class: groovy.lang.Binding
 

Как так получилось?

Я попытался использовать env.StackName, но он просто оценивается как «null» вместо «jenkins5».

Ответ №1:

Я полагаю, что это происходит из-за того, что Дженкинс читает параметры перед шагом среды.

Ответ №2:

Вероятно, вы можете перечислить в переменной, как показано ниже:

 pipeline {
agent any 
environment {
      stackName = "jenkins5"
    }
options {
        lock(label: 'resource1', variable: 'stackName', , inversePrecedence: false)
    }
 

для получения дополнительной информации : https://www.jenkins.io/doc/pipeline/steps/lockable-resources/