在git commit上重启rails服务器

时间:2013-05-23 16:58:28

标签: ruby-on-rails git

我正在为Ruby on Rails项目设置一个共享开发服务器。

有没有一种好方法可以将其设置为重新启动,或者每当有人将提交提交到主分支时重新加载代码(例如)?我不关心每次都设置宝石等,而是Heroku - 我只想运行新代码。

如果有任何问题,我可以手动进入并重新启动服务器 - 我只是不想每次都这样做。

2 个答案:

答案 0 :(得分:3)

The post-receive hook runs after the entire process is completed and can be used to update other services or notify users.

在post-receive钩子中,你很可能需要grep for Ruby PID,杀死那个进程,然后重启Rails服务器。

答案 1 :(得分:3)

Git Hooks正是您要找的。

使用这些,您可以根据特定条件运行自定义命令。

post-commit文件夹下创建一个名为.git/hooks的文件,如下所示:

#!/bin/sh

exec rake deploy

并在你的Rakefile中,

task :deploy do
  pid = IO.open("ps").grep(/script\/rails/) { |x| x.split(" ").first }.first
  sh "kill -9 #{pid}"
  sh "rails s"
end