У меня есть проект (PROJECT_A
), который запускается через веб-крючок и ожидает, что будет установлена переменная $PRODUCT
.Его значение используется для запуска определенного пути в сборке.Задание в файле .gitlab-ci.yml
выглядит следующим образом:
deploy:
stage: publish
script:
- ./generate_doc.sh $PRODUCT
Вызов webhook выглядит следующим образом:
http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[PRODUCT]=<PRODUCT>
Я вызываю этот триггер через webhook из других проектов, включая PROJECT_B
.Поэтому я вручную заполнил нужное значение в соответствующих веб-заданиях, например, для PROJECT_B
:
http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[PRODUCT]=PROJECT_B
Когда запущен конвейер в PROJECT_A
, $PRODUCT
имеет значение PROJECT_B
, как и ожидалось.
Я бы хотел еще больше параметризовать конвейер и учесть, в частности, сообщение о коммите.Вся необходимая информация, по-видимому, представлена в полезной нагрузке webhook .
Есть ли встроенный способ чтения этой полезной нагрузки в конвейере ?Или, альтернативно, поместите содержимое полезной нагрузки в переменную в webhook следующим образом:
http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[COMMIT_REF]=???
Я обнаружил обсуждений о выполнении параметризованных сборок Jenkins с использованием webhookполезная нагрузка, включая этот связанный вопрос .Существует также аналогичный вопрос на форуме Gitlab , без какого-либо ответа.
Есть ли способ сделать доступ к этой полезной нагрузке в конвейере Gitlab CI?Возможно, я мог бы извлечь предоставленные значения с помощью вызова jq
, но как я могу получить Json в первую очередь?