Получить параметры полезной нагрузки в 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 ответа
Есть несколько шагов, которые вы должны выполнить:
Настройте веб-хук в GitHub, с помощью которого вы начнете общаться с Jenkins. Это можно легко сделать, перейдя в свой репозиторий GitHub -> Setting -> Web-hooks.
Сделайте запись для типа контента как application/x-www-form-encoded.
- Выберите событие как событие Push.
- Создайте параметр String в Jenkins Server с именем "полезная нагрузка".
- После шага 3 GitHub сможет обернуть содержимое этой переменной и отправить его в Jenkins.
- В Jenkins вы можете читать переменную $payload, когда ваша сборка запускается.
- Разбор JSON с использованием библиотеки по вашему выбору
Ссылки: Как обработать полезную нагрузку github webhook в Jenkins? https://developer.github.com/webhooks/
Более простой способ сделать это без дополнительной библиотеки для анализа JSON - использовать Generic Webhook Trigger Plugin в Jenkins.
Он может разрешить любое значение из JSON с помощью JSONPath и назначить его переменным, доступным в сборке.