Git Jenkins和Gerrit与google repo scm的集成
我写这篇文章是因为我不清楚如何配置jenkins从gerrit那里获取构建项目所需的更改 网上有很多关于如何连接所有这些代码的教程/示例。 但我没有找到任何解释我想做什么的方法。 我认为这是可能的,但是。。。好。我不确定 我的设置: 我有一个repo清单,其中包含最终应用程序的许多不同模块。该应用程序是以这种方式编写的,因为我可以更改一个模块,并用另一个模块替换它,用类似的代码执行不同的工作。例如,它们可以针对不同的客户进行个性化设置 我在jenkins中设置了一个作业,捕捉每个子模块中的每个提交 我将Jenkins连接到Gerrit,我可以使用Gerrit trigger开始构建 它工作,我可以建立我的主人和目前的主人 我的问题是,当我发送一个补丁进行审查时,詹金斯构建了主程序,而不是我发送的补丁。我想在将最后一个补丁集成到master之前测试它 模块不能独立构建,因为它们都以某种方式连接,所以我无法单独检查每个部分Git Jenkins和Gerrit与google repo scm的集成,git,jenkins,gerrit,repo,Git,Jenkins,Gerrit,Repo,我写这篇文章是因为我不清楚如何配置jenkins从gerrit那里获取构建项目所需的更改 网上有很多关于如何连接所有这些代码的教程/示例。 但我没有找到任何解释我想做什么的方法。 我认为这是可能的,但是。。。好。我不确定 我的设置: 我有一个repo清单,其中包含最终应用程序的许多不同模块。该应用程序是以这种方式编写的,因为我可以更改一个模块,并用另一个模块替换它,用类似的代码执行不同的工作。例如,它们可以针对不同的客户进行个性化设置 我在jenkins中设置了一个作业,捕捉每个子模块中的每个提
有人能够完成这样的任务?关键是在:作业>配置>源代码管理>Git中相应地设置“存储库”>“高级..”>“Refspec”和“要构建的分支”>“分支说明符”字段 如果要构建“主”分支,请设置:
Refspec = +refs/heads/master:refs/remotes/origin/master
Branch Specifier = refs/heads/master
Refspec = $GERRIT_REFSPEC:$GERRIT_REFSPEC
Branch Specifieer = $GERRIT_REFSPEC
如果要构建修补程序集,请设置:
Refspec = +refs/heads/master:refs/remotes/origin/master
Branch Specifier = refs/heads/master
Refspec = $GERRIT_REFSPEC:$GERRIT_REFSPEC
Branch Specifieer = $GERRIT_REFSPEC
单击字段右侧的“?”以查看更多详细信息。当Gerrit触发器启动Jenkins作业时,您可以在执行生成之前执行以下操作以准备工作区:
repo init -u git://gerrit.mycompany.net/mymanifest.git
repo sync
repo download $GERRIT_PROJECT $GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER
。。。做你想要的。你好,马塞洛,谢谢你的回复。我明白你在说什么了。但是配置>源代码管理>Git。。。我使用的是谷歌回购CSM,而不是直接使用git。所以,如果我的变化是在一个子项目中,比如说在回购的子git模块中。我需要结帐所有谷歌回购与回购同步,但包括正确的补丁上传到gerrit。您的回复与git和Reto不相关吗?对不起,您是对的。我将尝试发布另一个解决方案。谢谢。我检查了一下,稍微修改一下就行了。修改是为了适应我的环境。cd$GERRIT_项目git fetchssh://jenkins@$GERRIT_主机:29418/$GERRIT_项目$GERRIT_REFSPEC&&git checkout FETCH_HEADCool。我编辑了答案,在url中添加了SSH选项和缺少的$GERRIT_项目。