我有我的rails应用程序托管在github上。每当在"dev"分支上发生提交时,我想在dev盒上做git pull并调用"/etc/init"。D/apache2 restart'命令。这是我可以用Capistrano部署做的还是我可以写一些自定义的shell脚本然后在rails应用中调用shell脚本?
你需要在git服务器上创建一个post-receive钩子,这个钩子会导致git在开发箱上被拉出。"git deploy with post-receive"的快速DAFS找到了相当多的资源,如http://ryanflorence.com/deploying-websites-with-a-tiny-git-hook
我个人更喜欢使用像Jenkins这样的构建系统,因为它给你更多的控制和可见性。我们已经使用Jenkins和github的post-receive钩子建立了一个持续部署系统,相对来说没有什么麻烦。另一个优点是,您可以通过链接作业在自动部署(如果它们通过)之前运行测试。