capistrano-multiyaml 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -13,6 +13,8 @@ For more information about the general idea of multistage deployment, see the [d
13
13
  set :stages, %w(integration staging production)
14
14
  set :default_stage, "staging"
15
15
  set :multiyaml_stages, "config/stages.yaml"`
16
+
17
+ require 'capistrano-multiyaml'
16
18
 
17
19
  **Note:** `:default_stage` is optional, and `:multiyaml_stages` only needs to be set if you are using a location other than `config/stages.yaml`.
18
20
 
@@ -25,11 +27,11 @@ The easiest way to understand the capabilities of the YAML file is to see a comp
25
27
  integration:
26
28
  roles:
27
29
  app:
28
- 'bobsmith-vm.foocorp.com':
30
+ '#{`hostname -f`}':
29
31
  staging:
30
32
  variables: &vars
31
33
  :data_path: '/nfs/#{application}/#{stage}'
32
- :clean_script: '#{deploy_to}/bin/clean-cache.sh'
34
+ :clean_script: '/usr/local/bin/clean-cache.sh'
33
35
  tasks: &tasks
34
36
  - type : after_callback
35
37
  target: 'deploy:setup'
@@ -62,7 +64,7 @@ production:
62
64
  ```
63
65
 
64
66
  * Variable keys are symbols
65
- * Other Capistrano variables can be interpreted within variables
67
+ * Variables and roles are interpolated. It is valid to use other variables within variables and roles, such as the staging data_path variable including the stage and application name, and the development app server role looking up the FQDN of localhost.
66
68
  * Tasks can be one of `after_callback` (using the "after" hook) or `before_callback` (using the "before" hook). Action can be either another task or a code block to be evaluated.
67
69
  * Additional parameters can be passed to servers in an array
68
70
 
@@ -73,3 +75,8 @@ Prefix deploy actions with the name of the stage, i.e. `cap production TASK`. I
73
75
  ## Caveats
74
76
 
75
77
  * Don't name your stage "stage", as this is a reserved word under the multistage extension (deploys won't do anything and in fact it will cause an infinite loop).
78
+
79
+ ## Inspiration
80
+
81
+ * [Jamis Buck's original](https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension)
82
+ * [Lee Hambly's alternative](https://github.com/leehambley/capistrano-yaml-multistage)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'capistrano-multiyaml'
3
- s.version = '1.0.0'
3
+ s.version = '1.1.0'
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ["Daniel Silverman"]
6
6
  s.email = 'me@agperson.com'
@@ -37,6 +37,7 @@ Capistrano::Configuration.instance.load do
37
37
  config.each do |section, contents|
38
38
  case section.to_s
39
39
 
40
+ # Set variables first so they can be used in roles if necessary.
40
41
  when "variables"
41
42
  contents.each do |key, value|
42
43
  if key.is_a?(Symbol) and not value.nil? then
@@ -59,9 +60,9 @@ Capistrano::Configuration.instance.load do
59
60
  hosts.each do |hostname, options|
60
61
  logger.info "Processing host settings for #{hostname} (#{name})"
61
62
  if options.is_a?(Hash) then
62
- role(rolename.to_sym, hostname.to_s, options)
63
+ role(rolename.to_sym, String.interpolate{hostname.to_s}, options)
63
64
  else
64
- role(rolename.to_sym, hostname.to_s)
65
+ role(rolename.to_sym, String.interpolate{hostname.to_s})
65
66
  end
66
67
  end
67
68
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-multiyaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-16 00:00:00.000000000 Z
12
+ date: 2013-04-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano