Получить параметры полезной нагрузки в Jenkins

Я новичок в Дженкинс. Я последовал за этой помощью, чтобы реализовать Jenkins, Github и Webhook.

Тем не менее, я застрял в этой проблеме. Я хочу получить параметры полезной нагрузки в Jenkins для проверки информации, такой как изменения, действия... из полезной нагрузки json.

Я написал сценарий для проверки. ACTION а также $payload всегда возвращается пустым

# !/bin/bash    
ACTION=`echo $payload | php -r '$data = file_get_contents("php://stdin"); $json = json_decode($data, true); echo $json["action"];'`

Я прочитал некоторые учебники, но безуспешно.

2 ответа

Решение

Есть несколько шагов, которые вы должны выполнить:

  1. Настройте веб-хук в GitHub, с помощью которого вы начнете общаться с Jenkins. Это можно легко сделать, перейдя в свой репозиторий GitHub -> Setting -> Web-hooks.

  2. Сделайте запись для типа контента как application/x-www-form-encoded.

  3. Выберите событие как событие Push.
  4. Создайте параметр String в Jenkins Server с именем "полезная нагрузка".
  5. После шага 3 GitHub сможет обернуть содержимое этой переменной и отправить его в Jenkins.
  6. В Jenkins вы можете читать переменную $payload, когда ваша сборка запускается.
  7. Разбор JSON с использованием библиотеки по вашему выбору

Ссылки: Как обработать полезную нагрузку github webhook в Jenkins? https://developer.github.com/webhooks/

Более простой способ сделать это без дополнительной библиотеки для анализа JSON - использовать Generic Webhook Trigger Plugin в Jenkins.

Он может разрешить любое значение из JSON с помощью JSONPath и назначить его переменным, доступным в сборке.

Другие вопросы по тегам