如何在本地执行Capistrano任务?

Dan*_*iel 16 git capistrano

我已经定义了一个自定义的Capistrano任务,该任务应该在本地运行(在我的开发机器上):

desc "Push code to Dreamhost"
task :push do
  run "git push dreamhost"
end
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行时cap push,它会在远程机器上执行,即.

* executing `push'
* executing "git push dreamhost"
  servers: ["ec2-999-99-999-999.compute-1.amazonaws.com"]
Run Code Online (Sandbox Code Playgroud)

我如何让它在本地执行呢?

pat*_*con 89

或者使用run_locallyCapistrano本地运行,并且仍然可以获得正确的日志记录和所有好东西


Cyd*_*ia7 17

我建议使用:

system("git push dreamhost")
Run Code Online (Sandbox Code Playgroud)

要么

output = %x[git push dreamhost]
Run Code Online (Sandbox Code Playgroud)

那只是普通的Ruby!

  • 请注意,`system`不会在当前任务失败的情况下终止。因此,您可能要使用@patcon建议的`run_locally`来代替。 (2认同)