我有一个PROJECT_A
通过 webhook 触发的项目 (),并希望设置变量$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>
我通过来自其他项目(包括PROJECT_B
. 所以我在相应的 webhook 中手动填写了所需的值,例如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 payload中提供。
是否有内置方法可以在管道中读取此有效负载?或者,将有效负载的内容放入 webhook 中的变量中,如下所示:
http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[COMMIT_REF]=???
我发现了关于使用 webhook 有效负载进行参数化 Jenkins 构建的讨论,包括这个相关问题。Gitlab 论坛里也有类似的问题,没有任何答案。
有没有办法在 Gitlab CI 管道中访问该有效负载?我可能可以通过jq
调用提取提供的值,但是我如何首先获得 Json?