capistrano-alice 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -0
- data/lib/capistrano-alice/release_managment.rb +29 -7
- data/lib/capistrano-alice/rvm.rb +5 -0
- data/lib/capistrano-alice/rvm_capistrano.rb +62 -0
- data/lib/capistrano-alice/version.rb +1 -1
- metadata +36 -50
data/Gemfile
CHANGED
@@ -3,6 +3,8 @@ class Capistrano::Alice::Release
|
|
3
3
|
attr_accessor :processes
|
4
4
|
attr_accessor :path_rules
|
5
5
|
attr_accessor :environment
|
6
|
+
attr_accessor :deploy_reference
|
7
|
+
attr_accessor :repository_reference
|
6
8
|
|
7
9
|
attr_accessor :id
|
8
10
|
attr_accessor :number
|
@@ -14,11 +16,13 @@ class Capistrano::Alice::Release
|
|
14
16
|
|
15
17
|
def create!
|
16
18
|
body = {
|
17
|
-
"application"
|
18
|
-
"machines"
|
19
|
-
"processes"
|
20
|
-
"path_rules"
|
21
|
-
"environment"
|
19
|
+
"application" => @config.application,
|
20
|
+
"machines" => @servers,
|
21
|
+
"processes" => @processes,
|
22
|
+
"path_rules" => (@path_rules || {}).to_a,
|
23
|
+
"environment" => @environment,
|
24
|
+
"deploy_reference" => @deploy_reference,
|
25
|
+
"repository_reference" => @repository_reference
|
22
26
|
}
|
23
27
|
|
24
28
|
Net::HTTP.start(@config.alice_host, @config.alice_port) do |http|
|
@@ -75,6 +79,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
75
79
|
find_and_execute_task("alice:release:_create:detect_ruby_version")
|
76
80
|
find_and_execute_task("alice:release:_create:detect_node_version")
|
77
81
|
|
82
|
+
alice_release.deploy_reference = fetch(:release_name, nil)
|
83
|
+
alice_release.repository_reference = fetch(:real_revision, nil)
|
84
|
+
|
78
85
|
on_rollback { find_and_execute_task("alice:release:destroy") }
|
79
86
|
|
80
87
|
begin
|
@@ -85,9 +92,15 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
85
92
|
|
86
93
|
default_environment.merge! alice_release.environment
|
87
94
|
|
88
|
-
if alice_release.environment['RUBY_VERSION']
|
89
|
-
set :rvm_ruby_string,
|
95
|
+
if version = alice_release.environment['RUBY_VERSION']
|
96
|
+
set :rvm_ruby_string, version
|
90
97
|
reset!(:default_shell)
|
98
|
+
|
99
|
+
if fetch(:alice_env, false)
|
100
|
+
path = default_environment['PATH'] || '$PATH'
|
101
|
+
path = [File.join(fetch(:alice_prefix, '/var/alice'), 'env', 'ruby', version, 'bin'), path].join(':')
|
102
|
+
default_environment['PATH'] = path
|
103
|
+
end
|
91
104
|
end
|
92
105
|
|
93
106
|
if alice_release.environment['RAILS_ENV']
|
@@ -199,6 +212,15 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
199
212
|
end
|
200
213
|
end
|
201
214
|
|
215
|
+
if rails_env = fetch(:rails_env, nil)
|
216
|
+
env['RAILS_ENV'] = rails_env
|
217
|
+
env['RACK_ENV'] = rails_env
|
218
|
+
end
|
219
|
+
|
220
|
+
if node_env = fetch(:node_env, nil)
|
221
|
+
env['NODE_ENV'] = node_env
|
222
|
+
end
|
223
|
+
|
202
224
|
env.merge! fetch(:alice_environment, {})
|
203
225
|
|
204
226
|
alice_release.environment.merge! env
|
@@ -0,0 +1,62 @@
|
|
1
|
+
|
2
|
+
# Recipes for using RVM on a server with capistrano.
|
3
|
+
|
4
|
+
unless Capistrano::Configuration.respond_to?(:instance)
|
5
|
+
abort "rvm/capistrano requires Capistrano >= 2."
|
6
|
+
end
|
7
|
+
|
8
|
+
Capistrano::Configuration.instance(true).load do
|
9
|
+
|
10
|
+
# Taken from the capistrano code.
|
11
|
+
def _cset(name, *args, &block)
|
12
|
+
unless exists?(name)
|
13
|
+
set(name, *args, &block)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
set :default_shell do
|
18
|
+
shell = File.join(rvm_bin_path, "rvm-shell")
|
19
|
+
ruby = rvm_ruby_string.to_s.strip
|
20
|
+
shell = "rvm_path=#{rvm_path} #{shell} '#{ruby}'" unless ruby.empty?
|
21
|
+
shell
|
22
|
+
end
|
23
|
+
|
24
|
+
# Let users set the type of their rvm install.
|
25
|
+
_cset(:rvm_type, :system)
|
26
|
+
|
27
|
+
# Define rvm_path
|
28
|
+
# This is used in the default_shell command to pass the required variable to rvm-shell, allowing
|
29
|
+
# rvm to boostrap using the proper path. This is being lost in Capistrano due to the lack of a
|
30
|
+
# full environment.
|
31
|
+
_cset(:rvm_path) do
|
32
|
+
case rvm_type
|
33
|
+
when :root, :system
|
34
|
+
"/usr/local/rvm"
|
35
|
+
when :local, :user, :default
|
36
|
+
"$HOME/.rvm/"
|
37
|
+
else
|
38
|
+
rvm_type.to_s.empty? ? "$HOME/.rvm" : rvm_type.to_s
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Let users override the rvm_bin_path
|
43
|
+
_cset(:rvm_bin_path) do
|
44
|
+
case rvm_type
|
45
|
+
when :root, :system
|
46
|
+
"/usr/local/rvm/bin"
|
47
|
+
when :local, :user, :default
|
48
|
+
"$HOME/.rvm/bin"
|
49
|
+
else
|
50
|
+
rvm_type.to_s.empty? ? "#{rvm_path}/bin" : rvm_type.to_s
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Use the default ruby on the server, by default :)
|
55
|
+
_cset(:rvm_ruby_string, "default")
|
56
|
+
end
|
57
|
+
|
58
|
+
# E.g, to use ree and rails 3:
|
59
|
+
#
|
60
|
+
# require 'rvm/capistrano'
|
61
|
+
# set :rvm_ruby_string, "ree@rails3"
|
62
|
+
#
|
metadata
CHANGED
@@ -1,46 +1,34 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-alice
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 3
|
10
|
-
version: 0.0.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Simon Menke
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-02-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: yajl-ruby
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70356617209300 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :runtime
|
33
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70356617209300
|
34
25
|
description: This makes deploying apps to alice/pluto much easier.
|
35
|
-
email:
|
26
|
+
email:
|
36
27
|
- simon.menke@gmail.com
|
37
28
|
executables: []
|
38
|
-
|
39
29
|
extensions: []
|
40
|
-
|
41
30
|
extra_rdoc_files: []
|
42
|
-
|
43
|
-
files:
|
31
|
+
files:
|
44
32
|
- .gitignore
|
45
33
|
- Gemfile
|
46
34
|
- Rakefile
|
@@ -48,39 +36,37 @@ files:
|
|
48
36
|
- lib/capistrano-alice.rb
|
49
37
|
- lib/capistrano-alice/maintenance_mode.rb
|
50
38
|
- lib/capistrano-alice/release_managment.rb
|
39
|
+
- lib/capistrano-alice/rvm.rb
|
40
|
+
- lib/capistrano-alice/rvm_capistrano.rb
|
51
41
|
- lib/capistrano-alice/version.rb
|
52
|
-
homepage:
|
42
|
+
homepage: ''
|
53
43
|
licenses: []
|
54
|
-
|
55
44
|
post_install_message:
|
56
45
|
rdoc_options: []
|
57
|
-
|
58
|
-
require_paths:
|
46
|
+
require_paths:
|
59
47
|
- lib
|
60
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
61
49
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
66
|
-
segments:
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
segments:
|
67
55
|
- 0
|
68
|
-
|
69
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
hash: 2999335112235911117
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
58
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
segments:
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
segments:
|
76
64
|
- 0
|
77
|
-
|
65
|
+
hash: 2999335112235911117
|
78
66
|
requirements: []
|
79
|
-
|
80
67
|
rubyforge_project: capistrano-alice
|
81
|
-
rubygems_version: 1.8.
|
68
|
+
rubygems_version: 1.8.11
|
82
69
|
signing_key:
|
83
70
|
specification_version: 3
|
84
|
-
summary:
|
71
|
+
summary: ! '[ALICE] capistrano extention for alice'
|
85
72
|
test_files: []
|
86
|
-
|