Eclipse 使用Jenkins/Hudson的Integration Manager Git工作流

Eclipse 使用Jenkins/Hudson的Integration Manager Git工作流,eclipse,git,hudson,jenkins,junit4,Eclipse,Git,Hudson,Jenkins,Junit4,我正在尝试实现一个经过修改的Integration Manager工作流,类似于中所述 我希望开发人员在发布代码之前在本地进行合并,而不是使用integration manager执行合并,我希望使用Quality Gateway强制执行我们的持续集成标准,例如最低级别的代码覆盖率和100%的测试通过率,在允许代码进入其他开发人员签出的存储库之前。其思想是,受祝福的存储库中的代码始终符合我们定义的最低标准,并且始终是构建的 我希望Jenkins扮演质量网关的角色,只有在构建成功时才将代码推送到

我正在尝试实现一个经过修改的Integration Manager工作流,类似于中所述

我希望开发人员在发布代码之前在本地进行合并,而不是使用
integration manager
执行合并,我希望使用
Quality Gateway
强制执行我们的持续集成标准,例如最低级别的代码覆盖率和100%的测试通过率,在允许代码进入其他开发人员签出的存储库之前。其思想是,受祝福的存储库中的代码始终符合我们定义的最低标准,并且始终是构建的

我希望Jenkins扮演质量网关的角色,只有在构建成功时才将代码推送到神圣的存储库

到目前为止,我已经对系统进行了设置,这样就有了以下公共repo:受祝福的存储库,Jenkins构建服务器上的存储库,它是通过gitosis访问的裸repo,当然还有开发人员自己的存储库

我让开发人员从受祝福的回购协议中撤出,并推动集成回购协议。现在,我正试图让Jenkins将成功的构建从集成回购推进到受祝福的回购

到目前为止,我看到的唯一一个类似于我试图实现的选项是Jenkins项目配置中构建后操作的Git Publisher设置中的“
仅在构建成功时推送”
”选项。但是,该选项不允许您指定要推送到的推送url或远程

据我所知,Git Publisher设置会将repo Jenkins的克隆推送到它的工作区,然后再推回到Jenkins的公共repo,但我想推到另一个远程存储库

有人对我如何让詹金斯推进受祝福的回购有什么建议吗?

编辑0: 我尝试将Post步骤执行push命令放到我的存储库中。这似乎是可行的,因为没有错误。但是,没有进行任何更改,日志显示git认为所有内容都是最新的:

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO]     ------------------------------------------------------------------------ 
[INFO] Total time: 1 minute 7 seconds 
[INFO] Finished at: Fri Nov 18 16:10:50 UTC 2011 
[INFO] Final Memory: 19M/45M 
[INFO] ------------------------------------------------------------------------ 
channel stopped 
[My Project] $ /bin/sh -xe /tmp/hudson5604254372179801803.sh + git push git@example.com:my-project.git --all
Everything up-to-date

我不知道为什么git认为没有什么可推动的,因为确实有。

您是否考虑过添加到您的工作流程中。更改被推送到Gerrit,然后您的CI运行构建并报告您的测试。它可以设置为在合并到您的回购协议之前需要其他批准(如授权代码审查)。在他们的开发中使用它。还有其他关于此工作流的讨论,如“的博客”。

使用Jenkins的“仅在构建成功时推送”操作,在集成存储库上使用post-commit或post-receive钩子,在Jenkins成功构建后推送时推送到受祝福的存储库如何?

看起来很有趣,但它唯一补充的是,我们目前的流程没有一个正式的审查流程。我们的项目是专业化的,所以如果他们通过构建,我们就知道他们通过了测试和我们定义的其他需求。它似乎没有足够的增加(到我们的过程中)来证明使用另一个工具使我们的环境复杂化是合理的。不过,当我们的需求发生变化时,我会记住的,谢谢!我理解限制复杂性的必要性:-)我的意思是,它会在每次变更前添加审查并报告CI/测试通过结果,然后再提交给您的受祝福的回购协议+1,尽管值得注意的是,这只会推动触发变更的分支。如果您已将标记或更改推送到多个分支,它们将不会被推送到(我们目前在每个回购中使用1个项目,而不是在每个分支中设置1个项目,因为我们创建了许多分支,希望通过持续集成来推送)