#rest #jenkins
#rest #Дженкинс
Вопрос:
Я использую https://wiki.jenkins.io/display/JENKINS/EnvInject Плагин 1.93.1 в моей установке Jenkins.
Мне нужно получить конфигурацию свойств EnvInject для каждого задания, которое у меня есть, но, похоже, я не могу найти способ сделать это в job rest api.
Я решил сделать это, извлекая последнюю сборку для каждого задания, а затем нажимая injectedEnvVars/api/ .
Эта стратегия не является оптимальной, потому что я должен выполнять запрос для каждого задания, а это занимает слишком много времени (более 4000 заданий).
Я что-то упустил? Есть ли способ получить свойства EnvInject вместе с информацией о задании?
Комментарии:
1. Можете ли вы иметь доступ к входу в главную машину Дженкинса, проверьте папку JENKINS_HOME, я думаю, что есть что-то для хранения значения EnvInject для каждого задания.
Ответ №1:
Если вы считаете, что отправка 4000 HTTP-запросов неэффективна, вы можете выполнить итерацию папки JENKINS_HOME на Jenkins Master.
Следующая картинка иллюстрирует структуру, для injectedEnvVars.txt
которой хранится значение EnvInject .
.jenkins
является ли папка JENKINS_HOMEfetch-envinject-value
это работа Дженкинсаbuilds/1
является ли сборка 1-го заданияbuilds/1/injectedEnvVars.txt
все переменные среды для этой сборки задания.
Комментарии:
1. Я понял, почему запросы выполняются медленно. Это как-то связано с нашей аутентификацией LDAP. Каждый базовый запрос аутентификации занимает ~ 5 секунд против 100 миллисекунд при доступе через браузер.