#jenkins #github
#дженкинс #github
Вопрос:
Я пытаюсь использовать универсальный плагин запуска Webhook в Jenkins для запуска сборки на случай, если в моем репозитории GitHub возникнет какой-либо PR. Для начала я определил переменную «current_status», сопоставив ее с полем «действие» в полезной нагрузке json, которая будет получена с GitHub. В то время как сборка запускается при повышении PR, но значение current_status принимает значение null. Тип содержимого для моего веб-крючка GitHub — «application / json»
Полезная нагрузка GitHub, сгенерированная для события PR, содержит поле действия: «действие»: «открыто», но когда я пытаюсь напечатать эту переменную, используя println «$ {params.current_status}» в моем конвейере, значение печатается как null.
Также, когда я пытаюсь выполнить шаг на основе значения переменной, используя
when {
expression { return params.current_status == "opened" }
}
этап пропускается, даже если значение в соответствии с действием в полезной нагрузке GitHub «открыто»
Для отладки проблемы, когда я выбрал опцию для печати внесенных переменных в журнале заданий, я мог видеть значение значения current_status как открытое
Но когда я ссылаюсь на эту переменную в своем конвейере, ее значение каким-то образом оказывается нулевым.
В качестве обходного пути я разделил мой конвейер, используя для переменной то же имя, что и то, которое определено в разделе общего плагина триггера Webhook (current_status), а затем сослался на него в моем Jenkinsfile, и это сработало.(значение переменной отражает значение, полученное в полезной нагрузке json из GitHub).
Ответ №1:
Наконец-то я нашел решение. Для тех, кто может столкнуться с такой же проблемой, вы можете ссылаться на переменную, определенную в универсальном плагине запуска Webhook, непосредственно как на заводную переменную. В моем случае я попытался использовать переменную current_status напрямую, не ссылаясь на нее через параметры, и она работала, как ожидалось.
Может быть полезен другой подход определения переменной с помощью параметризованного конвейера, при котором мы хотели бы запустить сборку вручную.