Gitlab webhook 可以用来触发 Tekton Pipelines 吗?

Posted

技术标签:

【中文标题】Gitlab webhook 可以用来触发 Tekton Pipelines 吗?【英文标题】:Can Gitlab webhooks be used to trigger Tekton Pipelines? 【发布时间】:2021-02-02 21:40:53 【问题描述】:

我有一个由 GitHub webhook 成功触发的工作 Tekton Pipeline,但它不适用于 Gitlab webhook。我可以看到 Gitlab webhook 被触发并且它到达了 OpenShift 中的 EventListener 容器,但是 Pipeline 本身没有运行。那么,它是否适用于 Gitlab webhook?如果是这样,我是否需要设置或更改一些东西才能真正触发管道?

谢谢! 塞萨尔

【问题讨论】:

查看EventListener pod 日志。在某些情况下,json 有效负载发送格式错误或无法解析。我的TriggerTemplate 中的PipelineRun 定义也不正确。能否提供代码示例和EventListener pod 日志? 我也写过a fully working example of GitLab Tekton Integration using Tekton Triggers, GitLab Webhook and the gitlab-set-status Task in this so Q&A。如果您有兴趣,这里是完全可以理解的示例项目:github.com/jonashackt/aws-eks-tekton-gitlab 【参考方案1】:

Tekton Trigger 可以由任何 http 请求发起,所以如果你使用 GitHub-webhookGitLab webhookcurl 命令应该无关紧要.

但是,这些 webhook 请求以稍微不同的 json 格式提供数据,因此要将 参数 传递给管道,您需要正确配置与您收到的请求匹配的 TriggerBinding。 GitLab 和 GitHub 可能需要不同的 TriggerBinding

但管道本身不运行

如果没有更多信息,很难回答这部分。有错误信息吗?

【讨论】:

谢谢乔纳斯!我在任何容器日志(tekton-triggers-webhook、tekton-triggers-controller、tekton-pipelines-controller、tekton-pipelines-webhook)中都看不到错误。还有其他地方我应该寻找吗? 是的,您应该查看EventListener pod 的日志。通过kubectl get pods 获取名称(它源自EventListenermetadata: name: 字段的内容,前缀为el-)。假设这给出了el-gitlab-listener-db6bb5858-dc8ks 1/1 Running 0 17m,那么您可以通过k logs po el-gitlab-listener-db6bb5858-dc8ks 获取日志。

以上是关于Gitlab webhook 可以用来触发 Tekton Pipelines 吗?的主要内容,如果未能解决你的问题,请参考以下文章

利用GitLab webhook来实现触发Jenkins自动操作

在gitlab通过webhook触发Jenkins的job中用script获取当前分支

gitlab实现webhook触发jenkins 自动,构建,测试,push webhook构子 总结

jenkins+gitlab webhooks 实现自动触发打包

jenkins+gitlab webhooks 实现自动触发打包

gitlab webhook 触发jenkins任务