我已经使用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工作区验证过,它不包含我的更改。
抱歉,如果我遗漏了任何要提及的信息。请告诉我 如果我在这里遗漏任何东西,请帮助我。
答案 0 :(得分:17)
使用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
答案 1 :(得分:9)
您必须将Choosing Strategy
更改为Gerrit Trigger
转到作业的配置页面,然后点击Advanced
部分下的第二个git
按钮。几乎在底部有Choosing Strategy
,您需要将其更改为Gerrit Trigger
这将导致Git为您的构建
获取正确的版本答案 2 :(得分:2)
我正在使用 Jenkins 2.15 ,并且遇到了该问题,并通过以下设置得到解决。
在Git Advances中添加Refspec:$GERRIT_REFSPEC
要建立的分支:$GERRIT_BRANCH
。
在“其他行为”部分中,选择Strategy for choosing what to build
,然后选择gerrit Trigger
。
答案 3 :(得分:1)