Настройте плагин Jenkins Hockeyapp с помощью скрипта Groovy - PullRequest
0 голосов
/ 13 сентября 2018

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

Мое понимание происходящего заключается в том, что мой сценарий создает новый дескриптор для Hockeyapp и сохраняет его - который работает при начальной загрузке Дженкинса, поскольку его не существует. При смене токена и перезагрузке дескриптор существует, и я не меняю его, поэтому проблема возникает со второй загрузки и далее.

import hockeyapp.*

def env = System.getenv()
def hockeyappConfig = new HockeyappRecorder.DescriptorImpl()

String apiToken = env['HOCKEYAPP_API_TOKEN'] ?: ''

if (apiToken?.trim()) {
    hockeyappConfig.setDefaultToken(apiToken)
    hockeyappConfig.save()
}

Кто-нибудь может объяснить, как получить существующую конфигурацию для Hockeyapp через Groovy, чтобы ее можно было редактировать, в идеале с помощью кода (мой Java не очень хорош)?

Я думаю, что ответ лежит где-то в Jenkins.getInstance(), а затем вытаскивает конфигурацию Hockeyapp, но я немного теряю глубину из-за незнакомых как в Java / Groovy, так и в программной конфигурации Дженкинс.

Соответствующий JavaDoc:

1 Ответ

0 голосов
/ 26 сентября 2018

У меня сработал приведенный ниже скрипт groovy - после использования getExtensionList для получения текущей конфигурации можно сменить токен.

Файл: $ JENKINS_HOME / init.groovy.d / hockeyapp.groovy

/*
    Set the default API token for Hockeyapp in global configuration

    Environment Variables:
    - HOCKEYAPP_API_TOKEN: Hockeyapp API Token
*/ 
import hockeyapp.*
import jenkins.model.Jenkins

def env = System.getenv()

Jenkins jenkins = Jenkins.getInstance()
def hockeyappConfig = jenkins.getExtensionList(HockeyappRecorder.DescriptorImpl.class)[0]

String apiToken = env['HOCKEYAPP_API_TOKEN'] ?: ''

if (apiToken?.trim()) {
    hockeyappConfig.setDefaultToken(apiToken)
    hockeyappConfig.save()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...