Gitlab Webhook и Jenkins: нет полученных данных

Я следил за приведенными ниже ссылками, чтобы интегрировать Gitlab с Jenkins с помощью веб-крючков. Все приведенные ниже ссылки указывают на получение "JSON" или "полезной нагрузки" или токена на стороне Jenkins, но я ничего не вижу, когда пытаюсь эхо или распечатать эти параметры в Shell script конфигураций Jenkins.

В оболочке script у меня есть это, но я никогда не получаю никаких полезных нагрузок:

echo "сработала сборка! Полезная нагрузка - $полезная нагрузка"

Я вижу, что некоторые JSON проходят через /var/log/Jenkins/Jenkins.logs, но я хочу видеть сообщения, входящие в мой "Консольный выход", чтобы я мог использовать сообщения, поступающие из Gitlab в запускать ли сборку или нет.

Большинство этих ссылок упоминают, что опции недоступны через Gitlab. В одной статье упоминалось преобразование формата веб-крючка в application/json, но таких параметров в интерфейсе Gitlab нет. Как обрабатывать полезную нагрузку github webhook в Jenkins? http://chloky.com/github-json-payload-in-jenkins/

Настройки Дженкинса: Настройки Jenkins

Gitlab webhook:

http://xx.xx.xx.xxx:8080/job/Interim_Build/buildWithParameters?token=TOKEN_NAME

Любая помощь будет отличной. Спасибо.

Ответ 1

Я предлагаю вам попробовать два решения (оба работают для меня):

  • конвертировать данные json из веб-узла Gitlab, используя этот элегантный прокси, написанный на Go https://github.com/akira/githookproxy. Он выполнит запрос webhook и переведет его в запрос target_url в формате:

    • payload: Тело JSON
    • START: Запустить коммит хеширования
    • END: End commit hash
    • REFNAME: имя ссылки
  • эмулировать jenkins как Gitlab CI, используя этот плагин Jenkins https://github.com/jenkinsci/gitlab-plugin

Для меня лучшее первое, потому что оно простое и прозрачное.