我正在尝试实现类似于ProGit中描述的修改后的Integration-Manager工作流程.
integration manager
我希望开发人员在发布代码之前在本地进行合并,而不是执行合并,我希望Quality Gateway
在允许代码进入祝福之前强制执行我们的持续集成标准,例如最低级别的代码覆盖率和100%测试通过.存储库由其他开发人员检出.我们的想法是,受祝福的存储库中的代码始终满足我们定义并始终构建的最低标准.
我希望Jenkins能够执行质量网关的角色,只在构建成功时将代码推送到受祝福的存储库.
到目前为止,我已经建立了系统,以便有以下公共存储库:祝福存储库,Jenkins构建服务器上的存储库,这是通过gitosis访问的裸仓库,当然还有开发人员自己的存储库.
我让开发人员从有福的回购中撤出并推向整合回购.现在我试图让Jenkins将成功的构建从集成回购推送到受祝福的回购.
到目前为止,我已经看到了似乎类似于我想要实现的唯一选项是" Push Only If Build Succeeds
"中邮的Git的Publisher设置建立在詹金斯的项目配置操作选项.但是,该选项不允许您指定push url或remote to push.
据我了解,Git的Publisher设置将推动回购詹金斯克隆到其工作区回詹金斯的公共回购,但我想推到一个不同的远程,有福库.
有没有人有任何建议我怎么能让詹金斯推进祝福的回购?
编辑0:我尝试使用Post Step来执行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认为没什么可推的,因为肯定有.