2

我已经设置了 Gerrit-Git-Jenkins 组合。我正在为 Jenkis 使用以下插件。

  • 格里特触发器
  • Git 客户端插件
  • 詹金斯 GIT 插件

我正在运行一个虚拟的 Jenkins 工作,它总是成功地用于开发目的。我注意到当我将更改推送到 Gerrit 时,文件不会显示在 Jenkins 工作区中。

在 Jenkins Git 配置中设置的存储库 URL 是git://localhost/project我尝试手动克隆它并git clone git://localhost/project获取我期望它的文件。

Jenkins 克隆哪个存储库来填充其工作区?

它克隆git://localhost/project. 我已经通过git remote show origin作为构建脚本运行,然后查看日志输出对此进行了测试。

Jenkins 运行什么命令来填充工作区,因为它似乎不是 HEAD 的克隆?

4

2 回答 2

5

Jenkins 执行以下操作来填充其工作区。(<>中的名字代表Jenkins项目配置中的字段名):

git clone <Repository URL>
git fetch <Refspec>
git checkout <Branch Specifier>

使用 Gerrit 中等待验证的文件填充工作区的设置是:

Refspec: refs/changes/*:refs/changes/*
Branches to build: $GERRIT_REFSPEC

这会从 Gerrit 中克隆所有内容,refs/changes/*并从引用为 branch 的文件中填充工作区$GERRIT_REFSPEC$GERRIT_REFSPECGerrit 收到的每个新更改都不同,它看起来像这样refs/changes/05/5/1

于 2013-08-27T09:50:07.870 回答
3

仅作记录,要检查 Gerrit 审查请求(即特定补丁集),请在 Jenkins/Hudson 作业中配置以下 3 个配置选项:

  1. Repositories -> Repository URL: gerrit 项目的 git url
    (eg, http://gerrit.corp.com/the-project )

  2. Repositories -> Refspec(高级 Git 设置):refs/changes/*:refs/changes/*

  3. Branches to be built -> Branch Specifier): refs/changes/XY/??XY/?
    (例如,refs/changes/24/3124/8

艾伦的答案是正确的。只是不够清楚,恕我直言,这就是为什么我试图用换句话说来详细说明答案。

于 2016-05-09T15:48:00.580 回答