2015-07-16 3 views
6

Я написал сценарий Jenkins Groovy для установки плагина Jenkins при запуске. Скрипты Groovy названы в честь Hook, который используется для вызова моих скриптов. Например. init.groovy запускается внутри init-Hook. Этот Крюк запускается после инициализации.Установка плагина Jenkins

Во время инициализации у меня нет доступа к UpdateCenter и невозможно установить плагины. Какие еще Jenkins Hooks можно использовать? По-моему, мне нужен пост-запуск Хука.

Этот скрипт работает в консоли сценария, но не внутри после инициализации крючке:

import jenkins.model.* 

def pluginParameter="gitlab-plugin hipchat swarm" 
def plugins = pluginParameter.split() 
println(plugins) 
def instance = Jenkins.getInstance() 
def pm = instance.getPluginManager() 
def uc = instance.getUpdateCenter() 
def installed = false 

plugins.each { 
    if (!pm.getPlugin(it)) { 
    def plugin = uc.getPlugin(it) 
    if (plugin) { 
     println("Installing " + it) 
     plugin.deploy() 
     installed = true 
    } 
    } 
} 

instance.save() 
if (installed) 
instance.doSafeRestart() 

мне нужен крюк, где запускается система и uc.getPlugin (она) не возвращает нуль.

ответ

6

Решено это, обратившись к каналу дженкинс-irc. Мне нужно было инициализировать список сайтов обновлений UpdateCenter. Результат можно найти здесь: blacklabelops/jenkins

+0

Грузы спасибо! –

+0

Я думаю, что строка # 14 (uc.updateAllSites()) избыточна в вашем примере. –

+0

Кроме того, instance.doSafeRestart() прерывает установку плагинов. –

Смежные вопросы