如何仅在合并请求合并后触发bash脚本?

时间:2018-11-02 02:17:04

标签: git gitlab gitlab-ci

我已经像这样写了一个简单的gitlab-ci.yml

job1:
  script: 
  - echo hello

当前,每当将提交推送到任何分支时,脚本就会触发。

如何配置gitlab-ci,使其仅在将合并请求合并到master分支后才触发此脚本?

我找不到only关键字来实现我的目标的方法。

Merge request events页面中有一个Settings -> Integrations选项,该选项似乎提供了与我想要的功能接近的功能。

enter image description here

1 个答案:

答案 0 :(得分:0)

基于问题here,在合并请求合并后,我使用gitlab-webhook-translator来触发脚本。

此处的关键是将条件设置为":object_kind == 'merge_request' && :object_attributes.work_in_progress === false && :object_attributes.state == 'merged'"

我要提到的另一件事是,我们必须选中gitlab中的Allow requests to the local network from hooks and services框,以便可以使用gitlab wbehooks。

enter image description here

我使用a simple web server检查gitlab发送的请求。这就是我发现gitlab-webhook-translator条件的:object_attributes.state == 'merged'选项的方式。