11

我们的团队正在从 CVS 过渡到 Git。我们打算使用与 GitHub 上的大多数开源项目类似的工作流程——每个开发人员都会从主存储库分叉,然后提交一个拉取请求,这将允许项目主管在将更改合并到主存储库之前进行代码审查。

Jenkins 允许我们添加多个 Git 存储库(标准 Git 插件,而不是 Multiple SCM 之一)。大概我可以输入每个分叉存储库的 URL,然后 Jenkins 将检查每个分叉的所有分支是否有更改。我给每个存储库命名,例如“master”、“developer1”、“developer2”...

我们希望 Jenkins 在适当的远程/分叉上标记每个构建。Git Publisher 插件要求您提供“目标远程名称”,但我们需要 Jenkins 能够自己解决这个问题。

4

1 回答 1

16

我自己设法解决了这个问题。

  • 在 Jenkins 项目配置页面的顶部,选中“This build is parameterized”并添加一个字符串参数“remote”,默认为“master”。
  • 添加“Git Publisher”作为构建后操作,以及标签“$BUILD_TAG”和目标远程名称=“$remote”
  • 在构建触发器中,选中“远程构建触发器”
  • 我们正在使用 GitLab,在项目设置菜单下,我添加了一个“Web Hook”:

    http://my-jenkins-server.com/job/my-project/buildWithParameters?token=secret&remote=master

为每个 fork 添加一个 web hook,并确保“remote”参数与 Jenkins 中配置的存储库名称匹配。

于 2013-09-06T05:49:11.507 回答