流程
Capistrano v3 提供了默认的部署流程和回滚流程
部署流程
当您运行 cap production deploy
时,它会按顺序调用以下任务
deploy:starting - start a deployment, make sure everything is ready
deploy:started - started hook (for custom tasks)
deploy:updating - update server(s) with a new release
deploy:updated - updated hook
deploy:publishing - publish the new release
deploy:published - published hook
deploy:finishing - finish the deployment, clean up everything
deploy:finished - finished hook
请注意,有几个钩子任务,例如 :started
、:updated
,您可以使用 after()
和 before()
将自定义任务挂钩到流程中。
回滚流程
当您运行 cap production deploy:rollback
时,它会按顺序调用以下任务
deploy:starting
deploy:started
deploy:reverting - revert server(s) to previous release
deploy:reverted - reverted hook
deploy:publishing
deploy:published
deploy:finishing_rollback - finish the rollback, clean up everything
deploy:finished
如您所见,回滚流程与部署流程共享许多任务。但请注意,回滚流程运行它自己的 :finishing_rollback
任务,因为它的清理过程通常与部署流程不同。
流程示例
假设您在 Capfile
中需要以下文件,
# Capfile
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
当您运行 cap production deploy
时,它会运行以下任务
deploy
deploy:starting
[before]
deploy:ensure_stage
deploy:set_shared_assets
deploy:check
deploy:started
deploy:updating
git:create_release
deploy:symlink:shared
deploy:updated
[before]
deploy:bundle
[after]
deploy:migrate
deploy:compile_assets
deploy:normalize_assets
deploy:publishing
deploy:symlink:release
deploy:published
deploy:finishing
deploy:cleanup
deploy:finished
deploy:log_revision
对于 cap production deploy:rollback
,它会运行以下任务
deploy
deploy:starting
[before]
deploy:ensure_stage
deploy:set_shared_assets
deploy:check
deploy:started
deploy:reverting
deploy:revert_release
deploy:reverted
[after]
deploy:rollback_assets
deploy:publishing
deploy:symlink:release
deploy:published
deploy:finishing_rollback
deploy:cleanup_rollback
deploy:finished
deploy:log_revision