git - 如何使用 Gitlab Webhook 触发 Jenkins 多分支流水线

标签 git jenkins gitlab jenkins-pipeline multibranch-pipeline

我目前设置了一个基于 Gitlab 服务器上托管的 Git 存储库的 Jenkins 多分支管道作业。 Jenkins 可以读取存储库中的分支,并为存储库中的每个分支创建一个作业。但是我不知道如何在 Gitlab 中使用 webhooks 触发作业。

我的问题是:

  1. 如何从我们的 Gitlab 服务器在 Jenkins 中触发创建新的分支作业?我看不到正在推送的新分支的 webhook。

  2. 如何为单个分支触发实际构建作业?我只能为推送事件添加一个 webhook,但我必须添加我不知道该怎么做的分支名称。

  3. 如何确保 Gitlab 始终在推送到分支触发构建作业本身之前触发“分支作业的创建”。

到目前为止我尝试的是触发多分支作业,但这没有任何效果并遵循 this post根本不起作用。

最佳答案

您需要安装Gitlab Plugin在 Jenkins 身上。

这将在 Jenkins 上添加一个 /project 端点。 (在 Jenkins => Administrate Jenkins => Configure System => Gitlab 中查看)

现在在您的 Gitlab 项目上添加一个 webhook => 设置 => 集成。 (或者在旧的 Gitlab 版本中:Gitlab 项目 => 轮子图标 => 集成,在这种情况下你似乎需要成为项目的所有者)

在 Url 中:设置 http://*yourjenkins.com*/**project**(/*foldername*)?/*yourprojectname* 就这样,然后点击“Add Webhook ”。

当您点击 webhook 上的测试时,它应该会触发您的 jenkins 管道构建。 (你应该有一个 200 http 响应)

它在 Gitlab 插件中无需身份验证即可工作,欢迎配置身份验证。

关于git - 如何使用 Gitlab Webhook 触发 Jenkins 多分支流水线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979405/

相关文章:

git - 在重新定位许多提交时如何防止许多 git 冲突?

xcode - 如何保存断点,使它们成为源代码管理提交项目的一部分

Jenkins Build Flow与Workflow(Pipeline)插件

android - Jenkins 无法找到 com.android.support :support-v4:27. 1.1

postgresql - 在 CentOS 6.5 上安装 Gitlab 时遇到问题

java - 如何从maven项目中删除不需要的文件

git - 确定哪个提交更改了子模块指针的 Git 命令是什么?

jenkins - 在centos上安装jenkins导致 "No more mirrors to try."

git - gitlab如何像github一样在上游分支之前或之后显示fork分支?

gitlab - 将 GitLab CI «protected» 变量用于 secret 是否安全?