首页 文章

Jenkins gerrit在建造时不会触发我的变化

提问于
浏览
12

我已经使用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工作区验证过,它不包括我的更改 .

对不起,如果我错过任何提及的信息 . 如果我在这里遗漏任何东西,请告诉我,请帮助我 .

3 回答

  • 16

    您必须将 Choosing Strategy 更改为 Gerrit Trigger

    转到作业的配置页面,然后单击 git 部分下的第二个 Advanced 按钮 . 几乎在底部有一个 Choosing Strategy ,您需要更改为 Gerrit Trigger

    这将导致Git为您的构建获取正确的版本

  • 0

    使用Jenkins 1.532.2 Git客户端插件1.6.2 Git插件2.0.1 Git Trigger 2.11.0

    以下是配置Gerrit触发器的步骤(从内存中,希望一切正常):

    • 安装插件"Gerrit Trigger","Git Plugin"和"Git Client Plugin"

    • 在主jenkins配置(HOME-> Manage Jenkins)中,单击Gerrit Trigger .

    • 创建服务器并进行配置 . 使用"Test Connection"确保它有效 .

    • 最后,在"Control"下按"start"(不知道那是做什么,或者是否真的需要,但我这样做了) .

    • 转到项目的配置(MYPROJECT-> Configure)

    • 在"Build Triggers"下查看"Gerrit event"

    • 在新添加的菜单中,选择您的服务器,触发器等 .

    • 对于Gerrit项目,我使用"Plain"和"MYPROJECT"作为模式

    • 对于Branch,我使用"Path"和"**"作为模式(构建所有分支)

    • 在"Source Code Management"下(从我的界面中的触发器开始),单击"Git"

    • 设置存储库URL,这里$ USER匹配给我,但是否则写正确的用户$ GERRIT_SCHEME:// $ USER @ $ GERRIT_HOST:$ GERRIT_PORT / $ GERRIT_PROJECT

    • 指定分支:$ GERRIT_BRANCH

    • 在右侧的"Repositories"下,单击高级,对于"Refspec"输入$ GERRIT_REFSPEC

    • 点击下面的添加,然后选择"Strategy for choosing what to build"

    • 选择"Gerrit Trigger"

    不是很直观,但它应该工作 . 我建议确保正在构建正确的SHA1 ID .

    If run into Error stderr: fatal: Couldn't find remote ref $GERRIT_REFSPEC

    enter image description here

  • 9

    修复Lewis answer中的小问题,将值更改为以下内容以确保构建最新的SHA1 .

    branch$GERRIT_REFSPEC

    REFSPEC$GERRIT_REFSPEC:$GERRIT_REFSPEC

相关问题