如何自动部署网站提交?

Aar*_*Aar 2 svn hook commit

我计划设置一个SVN服务器用于测试目的.现在是我的问题.如何将提交的文件自动部署到我的开发/暂存网站的路径?

我知道我可以使用后提交挂钩进入SVN,但我该如何配置呢?

所有提交的文件必须部署在http://dev.staging.mywebsite.com的路径中:/ home/www/dev/staging /

存储库位于:/ home/svn/mytestscript /

我怎样才能做到这一点?

Dav*_* W. 9

Nicholas Ding:为部署编写一个post-commit钩子真是个坏主意.

阿尔:你的理由是什么?检查您的网站,您提交的内容并不是很糟糕?你的论点是什么?

我不得不同意尼古拉斯丁.问题是,当您通过post-commit钩子进行部署时,您的开发人员正在等待提交完成.如果您的部署仅需30秒即可完成,那么开发人员等待您的提交后挂钩完成的时间为30秒.

如果每次开发人员提交文件时,您认为会发生什么?他们必须等待30秒才能完成提交?您认为他们会如何看待Subversion,一般的开发过程以及您作为CM?将您的部署作为提交后挂钩并不完全是一项职业提升措施.


我建议你看看詹金斯.Jenkins就是所谓的连续构建系统.您可以设置Jenkins,这样每次开发人员进行提交时,Jenkins都会进行构建.这样,您在部署过程中就不会占用Subversion.

好的是Jenkins也可以进行部署.而且,如果部署失败,它可以通过电子邮件发送执行提交的开发人员.詹金斯甚至可以为你做一些测试.例如,您的部署可能有效,但更改的代码会导致错误.这可能是很好的检测.并且,您可以将可部署工件存储在Jenkins中,以防您在部署之前进行测试.如果测试有效,您可以返回Jenkins中的该版本,单击按钮,然后进行部署.

作为另一个奖励,Jenkins允许您的开发人员查看所有更改,构建和部署的历史记录.它还可以在您开始测试后向您显示所有测试的历史记录.如果您使用问题跟踪系统,如Jira,Bugzilla,MantisBF,Track或任何其他流行的系统,Jenkins可以与这些系统集成,以帮助您跟踪处理特定问题的构建.

即使您不必编译任何内容(假设您的整个网页只是PHP文件和JavaScripts),您可以将Jenkins仅用于部署和测试,并且仍然可以从中获得很多好处.

Jenkins是一款非常出色的软件,它可以真正改善您的开发过程并处理您的问题而不会降低Subversion的速度.另外,Jenkins非常容易使用,使用Jenkins可能比在后提交钩子中找出如何做你想做的事情更快.