当使用Jenkinsfile从Gitlab创建Pull请求时,我们如何设置触发Jenkins作业

px9o7tmv  于 2022-12-29  发布在  Jenkins
关注(0)|答案(1)|浏览(237)

我不想在Gitlab中使用webhook选项。另外,Jenkins作业应该在创建拉取请求时自动触发。
i已按此-https://about.gitlab.com/handbook/customer-success/demo-systems/tutorials/integrations/create-jenkins-pipeline/进行尝试
这只显示gitlab管道错误,但没有jenkins作业触发。

n3schb8v

n3schb8v1#

你不想使用GitLab webhook有什么特别的原因吗?webhook是从SCM开始构建的常用方法。GitLab也有官方文档介绍如何使用webhook来实现你的目标:
https://docs.gitlab.com/ee/integration/jenkins.html
本教程涵盖了从创建允许Jenkins访问您的repo的访问令牌到设置负责触发构建的webhook的所有步骤。
如果你不想使用webhook,你可以使用一个更长的方法来触发你的构建,当一个PR被创建时,你需要首先在Jenkins中创建一个轮询作业,它每隔几分钟运行一次,并调用GitLab Merge requests API(doc).获取所有打开的PR,它们将是构建的潜在候选对象。由于您不希望构建已经构建的PR,您需要在PR(doc)中获取最新提交。
然后,检查该提交是否已经构建。如果没有,则触发构建该提交的下游作业。一旦构建完成,请确保更新该提交的构建状态,说明它已经构建,以便不会再次构建。
正如您所看到的,这是一种迂回的方法,但它是不使用webhook的最佳选择。

相关问题