2015-02-03 7 views
1

В настоящее время я работаю над проектом, в котором у нас есть экземпляр jenkins, работающий бок о бок с отдельным веб-сайтом, и рабочий процесс таков, что пользователи должны будут нажимать ссылки на веб-сайте, которые запускают задания jenkins в экземпляре jenkins ,Как я могу переопределить параметры задания Jenkins по умолчанию?

Дженкинс работа, которая получает срабатывает десятки параметров, и то, что мы сейчас делаем, что веб-сайт будет построен URL, как это с JavaScript:

https://JENKINS_HOST/job/JOB_NAME/buildWithParameters?DOZENS=of&PARAMETERES=here&delay=0sec

И тогда пользователь щелкнет это (отправка запроса GET), jenkins показывает небольшую страницу предупреждения, в которой говорится: «Вы должны использовать POST вместо этого, нажмите« Продолжить », чтобы продолжить».

Раньше, когда вы нажимали кнопку «Продолжить», вы отправляли на страницу задания, где вы могли видеть статус задания, но мы недавно обновили jenkins и теперь получаем только пустой белый экран после нажатия.

Я увидел еще один ответ здесь, где решение проблемы «пустой белый экран» заключается в том, чтобы отправить POST вместо получения, но это проблематично для нас, поскольку и наши Дженкинс, и наш вторичный веб-сайт открыты для общественности интернет, поэтому мы не можем просто генерировать токен API для использования для триггерных заданий, потому что это означает, что любой случайный человек может инициировать наши рабочие места. Мы обрабатываем безопасность, используя плагин openid и некоторые ACL на основе этого, поэтому нам действительно нужно иметь возможность выполнить запрос GET, зарегистрировать пользователя, если они еще не были, а затем отправить задание в качестве зарегистрированного пользователя пользователь.

Итак, есть ли способ вместо «запуска задания удаленно» просто отобразить форму параметров сборки, но со значениями, предварительно заполненными параметрами GET? Таким образом, наши пользователи смогут визуально просмотреть параметры и, возможно, внести исправления, прежде чем нажать «Построить», а затем посмотреть обновление состояния в реальном времени.

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

Спасибо.

ответ

1

Получается, что функциональность, которую я ищу, предоставляется плагином Build With Parameters. Это проявилось в моих поисках несколько раз, но я упускал из виду это каждый раз, думая, что это просто встроенная функция buildWithParameters, которая не делает то, что я хочу.

Игнорируя неудачное имя, этот плагин выполняет именно то, что я просил: он показывает вам форму параметров построения, со значениями, заполненными параметрами GET.

+0

Плагин EnvInject должен выполнять эту работу, однако - есть открытая ошибка - https://issues.jenkins-ci.org/browse/JENKINS-14437. я сталкиваюсь с той же проблемой, и единственным решением, которое я вижу сейчас, является переименование Build-Parameter. EnvInject работает нормально, но не может переопределить Build-Params – chenchuk

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