我已经用 gerrit 触发器插件配置了 jenkins 来验证我们推送到 gerrit 的每个提交。
我期待这个触发器包含我对原始仓库的最新更改并进行构建。
但是,它仅克隆 repo 项目并在没有我更改的情况下进行编译。
下面是我在 jenkins 中对 gerrit 触发器的配置设置。
Refspec: $GERRIT_REFSPEC
Branches to build: $GERRIT_BRANCH
Build trigger: Gerrit event
Trigger on: patch set created
Gerrit project: added project and branch
以下是构建输出消息
Triggered by Gerrit: http://ci-test1/22
Building on master in workspace /var/lib/jenkins/jobs/Build_Adserver_4.7/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Build_Adserver_4.7/workspace - hudson.remoting.LocalChannel@733aee56
Using strategy: Default
Last Built Revision: Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
Fetching changes from 1 remote Git repository
Fetching upstream changes from abc
Commencing build of Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
Checking out Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
[workspace] $ /bin/sh -xe /tmp/hudson1375188638196718521.sh
+ echo 'Started Build'
Started Build
+ echo ..................
..................
+ echo 'Build Finished'
Build Finished
Finished: SUCCESS
这里 701a75ef38aa191ac1b806c48e6b3451671888f6 是 repo 分支的 HEAD,8cbda558adcad4fb7eb714e0b3fb98a6fbf5811c 是我最新版本的 SHA-id。
我也从 jenkins 工作区进行了验证,它不包括我的更改。
抱歉,如果我遗漏了任何要提及的信息。请告诉我
如果我在这里遗漏了什么,请帮助我。
最佳答案
使用 Jenkins 1.532.2 Git 客户端插件 1.6.2 Git 插件 2.0.1 Git 触发器 2.11.0
以下是配置 Gerrit 触发器的步骤(根据内存,希望一切正常):
不是很直观,但它应该可以工作。我建议确保正在构建正确的 SHA1 Id。
如果遇到Error stderr: fatal: Couldn't find remote ref $GERRIT_REFSPEC
关于Jenkins gerrit 触发器在构建时未获取我的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060650/