通过 MR 中 Comments 关键字内容触发 CI 流水线
问题(Problem to solve)
在合并请求中添加评论,评论中如出现某关键字(如 run ci),则触发极狐GitLab CI/CD 流水线。
- Jenkins 的 GitLab插件 已经提供了在 GitLab 的 MR 中添加指定 Comments 即可触发 Jenkins 流水线
- GitHub Action 也支持通过 PR Comment 触发流水线
客户链接(Customer Link)
https://jihulab.com/jh-presales/east/-/issues/258
-
请@相关销售
解决方案(Proposal)
可以参考通过 Commit Message 来触发 GitLab CI 流水线的实现。内置了一个 CI_COMMIT_MESSAGE 的变量,在满足正则的情况下即可配合 Rules 去触发。
示例代码如下:
rspec:
script: ...
only:
variables:
- $CI_COMMIT_MESSAGE =~ /some-regexp/
这里具体的实现,可能是用类似 Push Events 的 Hooks 去做的,过滤的是 Payload 里 的 message 字段。
要实现 MR Comments 触发流水线,内置的 Merge Request 流水线变量似乎没有相关的变量,是否可以考虑添加一个类似 CI_MERGE_REQUEST_COMMENTS 的变量,然后基于正则去做匹配,最终触发流水线。
这个应该可以考虑使用 Merge Request Events 来做,Payload 里面有个 note 字段应该是记录具体的评论内容的。