我正在尝试实施类似于ProGit中描述的修改后的Integration-Manager工作流程。使用Jenkins/Hudson的Integration-Manager Git工作流程
,而不是一个integration manager
进行合并,我希望开发者发布他们的代码之前在本地合并,我想一个Quality Gateway
强制执行我们的持续集成标准,如代码覆盖率和100的最低水平%测试通过,然后允许代码进入有福的存储库以供其他开发人员检出。这个想法是,幸运存储库中的代码总是符合我们定义并始终构建的最低标准。
我想让詹金斯执行质量网关的角色,只有在构建成功时才将代码推送到有福的存储库。
到目前为止,我已经建立了系统,以便有以下公共回购:有福的存储库,Jenkins构建服务器上的存储库,它是通过gitosis访问的裸回购,以及开发人员自己的存储库。
我有开发人员从祝福回购和推动整合回购。现在我正试图让詹金斯将整合回购的成功构建推向有福的回购。
到目前为止,我看到的唯一选项与我试图实现的类似,是Jenkins项目配置中Post Work Actions的Git Publisher设置中的“Push Only If Build Succeeds
”选项。但是,该选项不允许您指定推送url或远程推送到。
据我了解,Git Publisher设置会将Jenkins的克隆推入其工作空间,重新回到Jenkins的公共回购库中,但我想推送到不同的远程存储库。
有没有人有任何建议如何让詹金斯推到祝福的回购?
编辑0: 我试图把后工序执行push命令我的祝福库。这似乎工作,因为没有错误。但是没有更改被推和日志显示混帐认为一切是最新的:
[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 [email protected]:my-project.git --all
Everything up-to-date
我不知道为什么混帐认为没有什么推的,因为肯定是有。
看起来很有意思,但它补充说我们目前的流程没有的唯一的事情是一个正式的审查过程。我们的项目已经过时了,所以如果他们通过构建,我们知道他们会通过我们定义的测试和其他要求。它似乎没有足够的(对我们的过程)来证明让另一个工具使我们的环境复杂化。尽管我们需要改变,但我会记住,谢谢! – chrisbunney
我知道限制复杂性的必要性:-)我只是说它会添加评论,并在每次更改之前报告CI /测试通过结果,然后再承诺您的祝福回购。 –
是的,当我们到达那个阶段时它会很好:) – chrisbunney