Jenkins gerrit trigger在构建时不取我的零钱
我已经用gerrit触发器插件配置jenkins,以验证我们推给gerrit的每个提交。 我希望这个触发器包括我对原始回购协议的最新更改,并进行构建。 但是,它只是克隆了一个回购项目,并在没有我修改的情况下进行编译 下面是我在jenkins中对gerrit触发器的配置设置Jenkins gerrit trigger在构建时不取我的零钱,jenkins,jenkins-plugins,gerrit,Jenkins,Jenkins Plugins,Gerrit,我已经用gerrit触发器插件配置jenkins,以验证我们推给gerrit的每个提交。 我希望这个触发器包括我对原始回购协议的最新更改,并进行构建。 但是,它只是克隆了一个回购项目,并在没有我修改的情况下进行编译 下面是我在jenkins中对gerrit触发器的配置设置 Refspec: $GERRIT_REFSPEC Branches to build: $GERRIT_BRANCH Build trigger: Gerrit event Trigger on: patch set c
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是回购分支的负责人,8cbda558adcad4fb7eb714e0b3fb98a6fbf5811c是触发构建的最新更改的SHA id
我也从jenkins工作区进行了验证,它不包括我的更改
对不起,如果我遗漏了任何需要提及的信息。请让我知道
如果我遗漏了什么,请帮助我。您必须将
选择策略更改为Gerrit Trigger
转到作业的配置页面,然后单击git
部分下的第二个Advanced
按钮。几乎在底部有一个选择策略
,您需要将其更改为Gerrit Trigger
这将导致Git使用Jenkins 1.532.2 Git Client Plugin 1.6.2 Git Plugin 2.0.1 Git Trigger 2.11.0获取构建的正确版本
以下是配置Gerrit触发器的步骤(从内存中,希望一切正常):
安装插件“Gerrit触发器”、“Git插件”和“Git客户端插件”
在jenkins主配置(主页->管理jenkins)中,单击Gerrit触发器
创建并配置服务器。使用“测试连接”确保其工作正常
最后,在“控制”下按“开始”(不知道这是什么,也不知道它是否真的需要,但我做到了)
转到项目的配置(MYPROJECT->Configure)
选中“构建触发器”下的“Gerrit事件”
在新添加的菜单中,选择服务器、触发器等
对于Gerrit项目,我使用“Plain”和“MYPROJECT”作为模式
对于分支,我使用“Path”和“**”作为模式(构建所有分支)
在“源代码管理”下(从我的UI中的触发器开始),单击“Git”
设置存储库URL,此处为$USER matches for me,否则请编写正确的用户$GERRIT_SCHEME://$USER@$GERRIT_HOST:$GERRIT_PORT/$GERRIT_PROJECT
指定一个分支:$GERRIT\u branch
在右侧的“存储库”下,单击高级,在“Refspec”中输入$GERRIT\u Refspec
单击右下方的添加,然后选择“选择构建内容的策略”
选择“Gerrit触发器”
不是很直观,但它应该可以工作。我建议确保正在构建正确的SHA1 ID
如果遇到
如果要解决小问题,请将值更改为以下值,以确保生成最新的SHA1
分支机构
:$GERRIT\u REFSPEC
REFSPEC
:$GERRIT\u REFSPEC:$GERRIT\u REFSPEC
我使用的是Jenkins 2.15,面对这个问题,通过以下设置得到解决。
在Git预付款中添加Refspec:$GERRIT\u Refspec
要建立的分支:$GERRIT\u分支
在另外的行为部分,选择策略来选择要构建的内容
并选择gerrit Trigger
@uncletall,我也面临这个问题。我现在使用的是最新版本。我看不到“选择战略”。根据新版本,我已经正确配置了“Gerrit Trigger”参数。但是,我的詹金斯仍然坚持旧代码。请帮忙,我很确定它是最新版本的。但是git插件目前严重损坏。我不得不将Git客户端插件从1.6.1降级到1.4.6,Git插件从2.0.1降级到1.4.0,以使Gerrit触发器再次工作。你必须降级吗?@uncletall你可能必须转到其他行为>添加>选择构建内容的策略谢谢Richard,似乎选择策略现在是“选择构建内容的策略”你必须降级git插件吗?不必降级。不过,我没有使用最新版本的詹金斯。请参阅我的答案以了解确切的版本号。非常感谢。我在做gerrit->jenkins->docker pipeline,你的答案很有帮助!