Как определить параметр Label в параметризованной сборке с использованием подхода с использованием сценариев - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь решить ту же проблему, что и этот вопрос SO: Как запустить сборку jenkins на конкретном узле с помощью плагина конвейера?

Единственное отличие в моем случае состоит в том, чторабота, которую я запускаю, является еще одной скриптовой конвейерной работой.Поэтому второй шаг в предлагаемом решении не применим в моем случае:

  1. Установить плагин параметра Node and Label
  2. В конфигурации test_job выберите «Эта сборка параметризована»и добавьте параметр Label и установите имя параметра равным 'node'
  3. В сценарии конвейера используйте код (код опущен)

Мой вопрос заключается в том, как определить:

org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition

внутри моего параметризованного конвейерного задания (не через графический интерфейс).

ЧтоЯ пробовал:

properties([[$class         : 'RebuildSettings',
         autoRebuild    : false,
         rebuildDisabled: false],
         parameters([org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition(name: 'node')])])

1 Ответ

2 голосов
/ 02 апреля 2019

Самый простой способ сгенерировать код, который вам нужен для вашего параметризованного конвейерного сценария, это:

  1. Перейти к генератору фрагментов трубопровода
  2. Выберите «Свойства: Установить свойства задания»
  3. Отметьте «Этот проект параметризован»
  4. Нажмите «Добавить параметр» и выберите «Метка»
  5. Нажмите «Сформировать конвейерный скрипт»

Это дает вам:

properties([

    [$class: 'RebuildSettings', autoRebuild: false, rebuildDisabled: false], 

    parameters([
        [$class: 'LabelParameterDefinition', 
            allNodesMatchingLabel: false, 
            defaultValue: '', 
            description: '', 
            name: 'node', 
            nodeEligibility: [$class: 'AllNodeEligibility'], t
            riggerIfResult: 'allCases']
        ]
    )

])

Но в моем случае это даже не было необходимо. Все, что вам нужно, это обычный строковый параметр с произвольным именем, скажем «узел», а затем выполните:

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