在Gitlab CI

时间:2019-01-29 11:05:22

标签: gitlab webhooks gitlab-ci git-webhooks

我有一个通过Webhook触发的项目(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>

我通过其他项目(包括PROJECT_B)中的webhook调用此触发器。 因此,我在相应的Webhooks中手动填写了所需的值,例如为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中提供。

是否有内置的方法可以在pipeline中读取此有效载荷?或者,将有效负载的内容放入Webhook中的变量中,如下所示:

http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[COMMIT_REF]=???

我发现discussions关于使用webhook有效负载(包括parameterized Jenkins builds)进行this related question。还有一个similar question in the Gitlab forum,没有任何答案。

有没有办法在Gitlab CI管道中访问有效负载?我可能可以通过jq调用来提取提供的值,但是如何首先获得Json?

0 个答案:

没有答案