Есть ли способ использовать внешнюю переменную в качестве параметров выбора в Дженкинс? - PullRequest
0 голосов
/ 31 октября 2019

Я хочу получить данные из моей таблицы sql и использовать их в качестве параметров выбора в Jenkins

+----+
| ID |
+----+
| 11 |
| 23 |
| 45 |
| 72 |
|  5 |
| 16 |
| 71 |
| 18 |
+----+

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

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

Каков был бы путь к достижению этого? Пожалуйста, помогите

1 Ответ

0 голосов
/ 31 октября 2019

Этого можно добиться, используя Расширенные параметры выбора в сочетании с файлом свойств.

  1. Создайте файл свойств с содержимым key=value1,value2,value3,..., например, key=11,23,45,72,5,16,71,18.
  2. Поместите этот файл в основную файловую систему Jenkins, например, /var/lib/jenkins/userContent/build.properties. Вам необходимо написать скрипт автоматизации / создать другое задание для регулярного обновления этого файла.
  3. В конфигурации задания выберите Этот проект параметризован > Параметр расширенного выбора .
  4. Введите имя для вашего параметра, например, TABLE_VALUE.
  5. Выбор Базовый тип параметра > Одиночный выбор .
  6. Введите разделитель, который вы использовали для разделения значений в файле свойств. В этом случае запятая ,.
  7. Выберите Файл свойств и введите путь к файлу свойств в мастере Jenkins - /var/lib/jenkins/userContent/build.properties.
  8. Введите key как ключ свойства .
  9. Сохранение конфигурации задания.
  10. Доступ к значению выбранного параметра с помощью переменной TABLE_VALUE в вашем конвейере.

Код конвейера

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

properties([
    parameters([
        extendedChoice(
            name: 'TABLE_VALUE', 
            description: '', 
            type: 'PT_SINGLE_SELECT',
            multiSelectDelimiter: ',', 
            propertyFile: '/var/lib/jenkins/userContent/build.properties', 
            propertyKey: 'key',
            quoteValue: false
        )
    ])
])

См. Источник код для всех возможных параметров и константы PT для всех возможных значений тип .

конфигурация задания

enter image description here

Параметры сборки

enter image description here

...