mirror of
https://github.com/capistrano/capistrano
synced 2023-03-27 23:21:18 -04:00
add Flow page under getting-started section
This commit is contained in:
parent
ca81f7ff68
commit
a99267004c
1 changed files with 111 additions and 0 deletions
111
documentation/getting-started/flow/index.markdown
Normal file
111
documentation/getting-started/flow/index.markdown
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
---
|
||||||
|
title: Flow
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
Capistrano v3 provides a default **deploy flow** and a **rollback flow**:
|
||||||
|
|
||||||
|
### Deploy flow
|
||||||
|
|
||||||
|
When you run `cap production deploy`, it invokes the following tasks in
|
||||||
|
sequence:
|
||||||
|
|
||||||
|
```
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
Notice there are several hook tasks e.g. `:started`, `:updated` for
|
||||||
|
you to hook up custom tasks into the flow using `after()` and `before()`.
|
||||||
|
|
||||||
|
### Rollback flow
|
||||||
|
|
||||||
|
When you run `cap production deploy:rollback`, it invokes the following
|
||||||
|
tasks in sequence:
|
||||||
|
|
||||||
|
```
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
As you can see, rollback flow shares many tasks with deploy flow. But note that, rollback flow runs its own `:finishing_rollback` task because its
|
||||||
|
cleanup process is usually different from deploy flow.
|
||||||
|
|
||||||
|
### Flow examples
|
||||||
|
|
||||||
|
Assume you require the following files in `Capfile`,
|
||||||
|
|
||||||
|
```
|
||||||
|
# Capfile
|
||||||
|
require 'capistrano/setup'
|
||||||
|
require 'capistrano/deploy'
|
||||||
|
require 'capistrano/bundler'
|
||||||
|
require 'capistrano/rails/migrations'
|
||||||
|
require 'capistrano/rails/assets'
|
||||||
|
```
|
||||||
|
|
||||||
|
When you run `cap production deploy`, it runs this following tasks:
|
||||||
|
|
||||||
|
```
|
||||||
|
deploy
|
||||||
|
deploy:starting
|
||||||
|
[before]
|
||||||
|
deploy:ensure_stage
|
||||||
|
deploy:check
|
||||||
|
deploy:started
|
||||||
|
deploy:updating
|
||||||
|
git:create_release
|
||||||
|
deploy:symlink:shared
|
||||||
|
deploy:updated
|
||||||
|
[before]
|
||||||
|
deploy:bundle
|
||||||
|
[after]
|
||||||
|
deploy:migrate
|
||||||
|
deploy:compile_assets
|
||||||
|
deploy:cleanup_assets
|
||||||
|
deploy:normalise_assets
|
||||||
|
deploy:publishing
|
||||||
|
deploy:symlink:release
|
||||||
|
deploy:restart
|
||||||
|
deploy:published
|
||||||
|
deploy:finishing
|
||||||
|
deploy:cleanup
|
||||||
|
deploy:finished
|
||||||
|
deploy:log_revision
|
||||||
|
```
|
||||||
|
|
||||||
|
For `cap production deploy:rollback`, it runs these tasks:
|
||||||
|
|
||||||
|
```
|
||||||
|
deploy
|
||||||
|
deploy:starting
|
||||||
|
[before]
|
||||||
|
deploy:ensure_stage
|
||||||
|
deploy:check
|
||||||
|
deploy:started
|
||||||
|
deploy:reverting
|
||||||
|
deploy:revert_release
|
||||||
|
deploy:reverted
|
||||||
|
[after]
|
||||||
|
deploy:rollback_assets
|
||||||
|
deploy:publishing
|
||||||
|
deploy:symlink:release
|
||||||
|
deploy:restart
|
||||||
|
deploy:published
|
||||||
|
deploy:finishing_rollback
|
||||||
|
deploy:cleanup_rollback
|
||||||
|
deploy:finished
|
||||||
|
deploy:log_revision
|
||||||
|
```
|
Loading…
Add table
Reference in a new issue