Как присвоить значение узлу jenkins, используя значение из файла свойств

Я могу загрузить файл свойств в декларативный конвейер Jenkins. При эхе значения также печатаются в выводе консоли. Я хочу использовать одно из значений в файле свойств, скажем, slavenode, в качестве метки Jenkins. Однако я не могу этого сделать. Я пробовал следующее, но это не удается:

stage ('echo variables'){
            agent {label 'a_server_name'}
            steps{
              load "path_to_file\\abc.properties"

                echo "Hi"
                echo "slave : ${SlaveNode}"

                              //executes successfully

            }

stage ('Execute script'){
            agent {label "$SlaveNode"}
            steps{
                echo "This is executing script"

            }

  // fails with error : There are no nodes with the label ‘SlaveNode’

Я хочу, чтобы он запускал этап «выполнение сценария» на $SlaveNode.


person Shivani    schedule 19.07.2019    source источник
comment
Я думаю, что метки агентов должны быть установлены при инициализации, что сделало бы эту динамическую маркировку во время выполнения невозможной, но я могу ошибаться.   -  person Matt Schuchard    schedule 19.07.2019
comment
Я нашел решение, и оно сработало!   -  person Shivani    schedule 25.07.2019


Ответы (2)


Я считаю, что вы можете сделать это, используя библиотеку Groovy и переменные среды.

person jbooker    schedule 19.07.2019
comment
Я не хочу использовать переменную среды. Когда файл свойств обновляется каким-либо другим сценарием, значения изменяются. Следовательно, я хочу использовать обновленный файл свойств для выбора узла, на котором он будет выполняться дальше. - person Shivani; 19.07.2019

Ниже приведен код, который работал у меня:

  steps{
      node( SlaveNode as String )
        { sh """ echo "It is running on SlaveNode" """ }
    }
person Shivani    schedule 25.07.2019