Как вывести список всех доступных плагинов jenkins, используя список команд с их короткими именами - PullRequest
0 голосов
/ 02 июля 2019

Я хочу перечислить все доступные имена плагинов и их короткие имена, используя параметр командной строки, чтобы я мог автоматизировать установку необходимого плагина через командную строку jenkins.

Просьба сообщить.Спасибо

  • До сих пор я пытался найти ответ на тот же вопрос, однако получил ответ только за то, как перечислить установленные плагины, а не за все доступные плагины.
  • Я нашел эту ссылку http://updates.jenkins -ci.org / download / plugins / , в котором перечислены все плагины, но только с их короткими именами

1 Ответ

1 голос
/ 03 июля 2019

Вы были так близко! СХЕМА подробно описана здесь . Информация рядом, чтобы вы могли ее проанализировать, надеюсь, я правильно понял.

http://updates.jenkins -ci.org / download / plugins / действительно является местоположением плагинов, а фактические версии плагинов находятся внутри каждой папки.

https://updates.jenkins.io/ - корневой уровень. Вы можете найти список всех плагинов и их подробности на plugin-versions.json .

update-center.js, update-center.json и update-center.json.html содержат фактические метаданные центра обновлений в формате JSON, JSONP и HTML соответственно. Вы можете проанализировать JSON, чтобы получить все, что вы ищете. Также есть списки для URL-адреса документации и истории выпусков, а также обновлений.

Здесь есть нюансы; есть стабильный (т. е. LTS) или последний (т. е. еженедельный) и основные выпуски каждого. Каждый из них имеет свой собственный подсписок, в зависимости от минимальной версии и совместимости.


Выбор плагина Поскольку ничего из этого не говорит вам о том, что на самом деле делают плагины, лучше всего выбрать ваши плагины в https://plugins.jenkins.io/. Нажав на любой плагин (например: mailer ), вы увидите блок заголовка с деталями:

Mailer 1.23
Минимальное требование Дженкинса: 1.642.3
ID: почтовый

ID - это короткое имя, которое вы ищете. Пройдите и найдите плагины, которые вы хотите использовать, и это ваш список. Не беспокойтесь о зависимостях.


Об управлении плагином

Даже в автономном экземпляре я использую модифицированный скрипт Docker install_plugins.sh , чтобы сгенерировать полный список плагинов для установки.

Вы можете просмотреть выходные данные или использовать приведенный ниже скрипт groovy, чтобы упростить свой список «must have». Кроме того, так как обновления зависимостей происходят постоянно, я также генерирую список фактических установленных обновлений, если мне нужно идентично повторно применить к другому экземпляру, а не из моего кураторского списка. Мой список курируемых ~ 45 плагинов, с более чем 115 устанавливается.

Например: workflow-api включает [workflow-scm-step], который включает [git, subversion], поэтому не нужно указывать git. Но вы хотите знать, какая версия у вас есть. Иногда вам может понадобиться явно добавить зависимость, чтобы получить последнюю версию, чтобы избежать дефекта, для JENKINS-54018 , плагинов, которые были отделены от Jenkins .

println "Jenkins Instance : " + Jenkins.getInstance().getComputer('').getHostName() + " - " + Jenkins.getInstance().getRootUrl() 
println "Installed Plugins: "
println "=================="
Jenkins.instance.pluginManager.plugins.sort(false) { a, b -> a.getShortName().toLowerCase() <=> b.getShortName().toLowerCase()}.each { plugin ->
   println "${plugin.getShortName()}:${plugin.getVersion()} | ${plugin.getDisplayName()} "
}

println""
println "Plugins Dependency tree (...: dependencies; +++: dependants) :"
println "======================="
Jenkins.instance.pluginManager.plugins.sort(false) { a, b -> a.getShortName().toLowerCase() <=> b.getShortName().toLowerCase()}.each { plugin ->
   println "${plugin.getShortName()}:${plugin.getVersion()} | ${plugin.getDisplayName()} "
   println "+++ ${plugin.getDependants()}"
   println "... ${plugin.getDependencies()}"
   println ''
}

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