engineyard-serverside 2.3.9 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/bin/engineyard-serverside-execute-hook +31 -0
- data/lib/engineyard-serverside/about.rb +3 -0
- data/lib/engineyard-serverside/cli.rb +3 -1
- data/lib/engineyard-serverside/configuration.rb +5 -0
- data/lib/engineyard-serverside/deploy.rb +25 -7
- data/lib/engineyard-serverside/maintenance.rb +14 -1
- data/lib/engineyard-serverside/paths.rb +4 -0
- data/lib/engineyard-serverside/server.rb +3 -2
- data/lib/engineyard-serverside/version.rb +1 -1
- data/spec/archive_deploy_spec.rb +4 -10
- data/spec/basic_deploy_spec.rb +3 -3
- data/spec/bundler_deploy_spec.rb +32 -32
- data/spec/configuration_spec.rb +42 -42
- data/spec/custom_deploy_spec.rb +9 -9
- data/spec/deploy_hook_spec.rb +103 -89
- data/spec/deprecation_spec.rb +3 -3
- data/spec/ey_yml_customized_deploy_spec.rb +21 -21
- data/spec/fixtures/repos/executable_hooks/README +1 -0
- data/spec/fixtures/repos/executable_hooks/deploy/before_restart +72 -0
- data/spec/fixtures/repos/public_system/Gemfile +4 -0
- data/spec/fixtures/repos/public_system/Gemfile.lock +12 -0
- data/spec/fixtures/repos/public_system/README +5 -0
- data/spec/fixtures/repos/public_system/ey.yml +3 -0
- data/spec/fixtures/repos/public_system/public/system/cant_touch_this.txt +3 -0
- data/spec/lockfile_parser_spec.rb +26 -26
- data/spec/multi_dependency_manager_spec.rb +3 -3
- data/spec/nodejs_deploy_spec.rb +2 -2
- data/spec/php_deploy_spec.rb +7 -7
- data/spec/rails31_deploy_spec.rb +56 -56
- data/spec/restart_spec.rb +3 -3
- data/spec/rollback_spec.rb +19 -19
- data/spec/server_spec.rb +16 -16
- data/spec/services_deploy_spec.rb +40 -40
- data/spec/shell_spec.rb +1 -1
- data/spec/source/archive_spec.rb +1 -1
- data/spec/source/git_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -1
- data/spec/sqlite3_deploy_spec.rb +6 -6
- data/spec/symlink_spec.rb +15 -0
- metadata +139 -154
- data/lib/engineyard-serverside/source_strategy.rb +0 -77
data/spec/restart_spec.rb
CHANGED
@@ -23,12 +23,12 @@ describe "EY::Serverside::Deploy#restart_with_maintenance_page" do
|
|
23
23
|
config = EY::Serverside::Deploy::Configuration.new('deploy_to' => deploy_dir, 'app' => 'app_name')
|
24
24
|
deployer = TestRestartWithMaintenancePage.realnew(test_servers, config, test_shell)
|
25
25
|
deployer.restart_with_maintenance_page
|
26
|
-
deployer.call_order.
|
26
|
+
expect(deployer.call_order).to eq(%w(
|
27
27
|
require_custom_tasks
|
28
28
|
enable_maintenance_page
|
29
29
|
restart
|
30
30
|
disable_maintenance_page
|
31
|
-
)
|
31
|
+
))
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -38,6 +38,6 @@ describe "glassfish stack" do
|
|
38
38
|
config = EY::Serverside::Deploy::Configuration.new('deploy_to' => deploy_dir, 'app' => 'app_name', 'stack' => 'glassfish')
|
39
39
|
deployer = TestRestartDeploy.realnew(test_servers, config, test_shell)
|
40
40
|
deployer.restart_with_maintenance_page
|
41
|
-
deployer.call_order.
|
41
|
+
expect(deployer.call_order).to include('enable_maintenance_page')
|
42
42
|
end
|
43
43
|
end
|
data/spec/rollback_spec.rb
CHANGED
@@ -4,14 +4,14 @@ describe "Rolling back" do
|
|
4
4
|
def setup_good_and_bad_deploy(repo)
|
5
5
|
deploy_test_application(repo, 'migrate' => nil)
|
6
6
|
@good_revision = deploy_dir.join('current', 'REVISION').read.strip
|
7
|
-
deploy_dir.join('current', 'REVISION').
|
7
|
+
expect(deploy_dir.join('current', 'REVISION')).to exist
|
8
8
|
deploy_dir.join('current', 'restart').delete
|
9
9
|
deploy_test_application(repo, 'migrate' => nil)
|
10
|
-
deploy_dir.join('current', 'REVISION').
|
10
|
+
expect(deploy_dir.join('current', 'REVISION')).to exist
|
11
11
|
deploy_dir.join('current', 'restart').delete
|
12
12
|
|
13
13
|
releases = @deployer.config.paths.all_releases
|
14
|
-
releases.size.
|
14
|
+
expect(releases.size).to eq(2)
|
15
15
|
@good_release = releases.first
|
16
16
|
@bad_release = releases.last
|
17
17
|
end
|
@@ -33,13 +33,13 @@ describe "Rolling back" do
|
|
33
33
|
|
34
34
|
it "rolls back to the older deploy" do
|
35
35
|
out = read_output
|
36
|
-
out.
|
37
|
-
out.
|
38
|
-
out.
|
36
|
+
expect(out).to match(/Rolling back to previous release.*#{@good_revision}/)
|
37
|
+
expect(out).to match(/Restarting with previous release./)
|
38
|
+
expect(out).to match(/Finished rollback/)
|
39
39
|
|
40
|
-
deploy_dir.join('current', 'restart').
|
41
|
-
@bad_release.
|
42
|
-
@good_release.join('restart').
|
40
|
+
expect(deploy_dir.join('current', 'restart')).to exist
|
41
|
+
expect(@bad_release).not_to exist
|
42
|
+
expect(@good_release.join('restart')).to exist
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -57,9 +57,9 @@ describe "Rolling back" do
|
|
57
57
|
expect(out).to include("Storing files in this directory will disrupt latest_release, diff detection, rollback, and possibly other features.")
|
58
58
|
expect(out).to_not include("Restarting with previous release.")
|
59
59
|
|
60
|
-
deploy_dir.join('current', 'restart').
|
61
|
-
@bad_release.
|
62
|
-
@good_release.
|
60
|
+
expect(deploy_dir.join('current', 'restart')).not_to exist
|
61
|
+
expect(@bad_release).to exist
|
62
|
+
expect(@good_release).to exist
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -71,17 +71,17 @@ describe "Rolling back" do
|
|
71
71
|
|
72
72
|
it "rolls back to the older deploy" do
|
73
73
|
out = read_output
|
74
|
-
out.
|
75
|
-
out.
|
76
|
-
out.
|
74
|
+
expect(out).to match(/Rolling back to previous release.*#{@good_revision}/)
|
75
|
+
expect(out).to match(/Restarting with previous release./)
|
76
|
+
expect(out).to match(/Finished rollback/)
|
77
77
|
|
78
|
-
deploy_dir.join('current', 'restart').
|
79
|
-
@bad_release.
|
80
|
-
@good_release.join('restart').
|
78
|
+
expect(deploy_dir.join('current', 'restart')).to exist
|
79
|
+
expect(@bad_release).not_to exist
|
80
|
+
expect(@good_release.join('restart')).to exist
|
81
81
|
end
|
82
82
|
|
83
83
|
it "loads and uses ey.yml during rollback" do
|
84
|
-
read_output.
|
84
|
+
expect(read_output).to match(/--without only test/)
|
85
85
|
end
|
86
86
|
end
|
87
87
|
end
|
data/spec/server_spec.rb
CHANGED
@@ -2,26 +2,26 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe EY::Serverside::Server do
|
4
4
|
it "starts off empty" do
|
5
|
-
EY::Serverside::Servers.new([], test_shell).
|
5
|
+
expect(EY::Serverside::Servers.new([], test_shell)).to be_empty
|
6
6
|
end
|
7
7
|
|
8
8
|
it "loads from hashes" do
|
9
9
|
servers = EY::Serverside::Servers.from_hashes([{:hostname => 'otherhost', :roles => %w[fire water]}], test_shell)
|
10
|
-
servers.size.
|
10
|
+
expect(servers.size).to eq(1)
|
11
11
|
end
|
12
12
|
|
13
13
|
it "rejects duplicates" do
|
14
|
-
|
14
|
+
expect do
|
15
15
|
EY::Serverside::Servers.from_hashes([
|
16
16
|
{:hostname => 'otherhost', :roles => [:fire]},
|
17
17
|
{:hostname => 'otherhost', :roles => [:water]},
|
18
18
|
], test_shell)
|
19
|
-
end.
|
19
|
+
end.to raise_error(EY::Serverside::Servers::DuplicateHostname)
|
20
20
|
end
|
21
21
|
|
22
22
|
it "makes sure your roles are symbols at creation time" do
|
23
23
|
servers = EY::Serverside::Servers.from_hashes([{:hostname => 'otherhost', :roles => %w[fire water]}], test_shell)
|
24
|
-
servers.each { |server| server.roles.
|
24
|
+
servers.each { |server| expect(server.roles).to eq(Set[:fire, :water]) }
|
25
25
|
end
|
26
26
|
|
27
27
|
context "filtering" do
|
@@ -34,37 +34,37 @@ describe EY::Serverside::Server do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "#roles works with strings or symbols" do
|
37
|
-
@servers.roles(:fire ).map{|s| s.hostname}.
|
38
|
-
@servers.roles('fire').map{|s| s.hostname}.
|
37
|
+
expect(@servers.roles(:fire ).map{|s| s.hostname}).to eq(['firewater'])
|
38
|
+
expect(@servers.roles('fire').map{|s| s.hostname}).to eq(['firewater']) # hits the cache the second time
|
39
39
|
end
|
40
40
|
|
41
41
|
it "#roles finds all servers with the specified role" do
|
42
|
-
@servers.roles(:ice).size.
|
43
|
-
@servers.roles(:ice).map{|s| s.hostname}.sort.
|
42
|
+
expect(@servers.roles(:ice).size).to eq(2)
|
43
|
+
expect(@servers.roles(:ice).map{|s| s.hostname}.sort).to eq(['icewater','localhost'])
|
44
44
|
end
|
45
45
|
|
46
46
|
it "#roles finds all servers with any of the specified roles" do
|
47
|
-
@servers.roles(:ice, :water).
|
47
|
+
expect(@servers.roles(:ice, :water)).to eq(@servers)
|
48
48
|
end
|
49
49
|
|
50
50
|
it "#roles returns everything when asked for :all" do
|
51
|
-
@servers.roles(:all).
|
51
|
+
expect(@servers.roles(:all)).to eq(@servers)
|
52
52
|
end
|
53
53
|
|
54
54
|
it "#roles also yields filtered server set" do
|
55
55
|
@servers.roles(:ice) do |servers|
|
56
|
-
servers.size.
|
57
|
-
servers.map{|s| s.hostname}.sort.
|
56
|
+
expect(servers.size).to eq(2)
|
57
|
+
expect(servers.map{|s| s.hostname}.sort).to eq(['icewater','localhost'])
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
61
|
it "#localhost returns the localhost server" do
|
62
|
-
@servers.localhost.hostname.
|
62
|
+
expect(@servers.localhost.hostname).to eq('localhost')
|
63
63
|
end
|
64
64
|
|
65
65
|
it "#remote returns non-localhost servers" do
|
66
|
-
@servers.remote.size.
|
67
|
-
@servers.remote.map {|s| s.hostname}.sort.
|
66
|
+
expect(@servers.remote.size).to eq(2)
|
67
|
+
expect(@servers.remote.map {|s| s.hostname}.sort).to eq(['firewater','icewater'])
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
@@ -14,7 +14,7 @@ describe "Deploying an application with services" do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
it "warns about missing ey_config" do
|
17
|
-
read_stderr.
|
17
|
+
expect(read_stderr).to include("WARNING: Gemfile.lock does not contain ey_config")
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -24,7 +24,7 @@ describe "Deploying an application with services" do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it "works without warnings" do
|
27
|
-
read_output.
|
27
|
+
expect(read_output).not_to match(/WARNING/)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
@@ -38,15 +38,15 @@ describe "Deploying an application with services" do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it "works without warning" do
|
41
|
-
shared_services_file.
|
42
|
-
shared_services_file.
|
43
|
-
shared_services_file.read.
|
41
|
+
expect(shared_services_file).to exist
|
42
|
+
expect(shared_services_file).not_to be_symlink
|
43
|
+
expect(shared_services_file.read).to eq("#{@invalid_services_yml}\n")
|
44
44
|
|
45
|
-
symlinked_services_file.
|
46
|
-
symlinked_services_file.
|
47
|
-
shared_services_file.read.
|
45
|
+
expect(symlinked_services_file).to exist
|
46
|
+
expect(symlinked_services_file).to be_symlink
|
47
|
+
expect(shared_services_file.read).to eq("#{@invalid_services_yml}\n")
|
48
48
|
|
49
|
-
read_output.
|
49
|
+
expect(read_output).not_to match(/WARNING/)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -58,15 +58,15 @@ describe "Deploying an application with services" do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it "creates and symlinks ey_services_config_deploy.yml" do
|
61
|
-
shared_services_file.
|
62
|
-
shared_services_file.
|
63
|
-
shared_services_file.read.
|
61
|
+
expect(shared_services_file).to exist
|
62
|
+
expect(shared_services_file).not_to be_symlink
|
63
|
+
expect(shared_services_file.read).to eq("#{services_yml}\n")
|
64
64
|
|
65
|
-
symlinked_services_file.
|
66
|
-
symlinked_services_file.
|
67
|
-
shared_services_file.read.
|
65
|
+
expect(symlinked_services_file).to exist
|
66
|
+
expect(symlinked_services_file).to be_symlink
|
67
|
+
expect(shared_services_file.read).to eq("#{services_yml}\n")
|
68
68
|
|
69
|
-
read_output.
|
69
|
+
expect(read_output).not_to match(/WARNING/)
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
@@ -81,15 +81,15 @@ describe "Deploying an application with services" do
|
|
81
81
|
end
|
82
82
|
|
83
83
|
it "silently fails" do
|
84
|
-
shared_services_file.
|
85
|
-
shared_services_file.
|
86
|
-
shared_services_file.read.
|
84
|
+
expect(shared_services_file).to exist
|
85
|
+
expect(shared_services_file).not_to be_symlink
|
86
|
+
expect(shared_services_file.read).to eq("#{services_yml}\n")
|
87
87
|
|
88
|
-
symlinked_services_file.
|
89
|
-
symlinked_services_file.
|
90
|
-
shared_services_file.read.
|
88
|
+
expect(symlinked_services_file).to exist
|
89
|
+
expect(symlinked_services_file).to be_symlink
|
90
|
+
expect(shared_services_file.read).to eq("#{services_yml}\n")
|
91
91
|
|
92
|
-
read_output.
|
92
|
+
expect(read_output).not_to match(/WARNING/)
|
93
93
|
end
|
94
94
|
|
95
95
|
end
|
@@ -101,15 +101,15 @@ describe "Deploying an application with services" do
|
|
101
101
|
})
|
102
102
|
redeploy_test_application('config' => {'services_setup_command' => 'false'})
|
103
103
|
|
104
|
-
shared_services_file.
|
105
|
-
shared_services_file.
|
106
|
-
shared_services_file.read.
|
104
|
+
expect(shared_services_file).to exist
|
105
|
+
expect(shared_services_file).not_to be_symlink
|
106
|
+
expect(shared_services_file.read).to eq("#{services_yml}\n")
|
107
107
|
|
108
|
-
symlinked_services_file.
|
109
|
-
symlinked_services_file.
|
110
|
-
shared_services_file.read.
|
108
|
+
expect(symlinked_services_file).to exist
|
109
|
+
expect(symlinked_services_file).to be_symlink
|
110
|
+
expect(shared_services_file.read).to eq("#{services_yml}\n")
|
111
111
|
|
112
|
-
read_output.
|
112
|
+
expect(read_output).to include('WARNING: External services configuration not updated')
|
113
113
|
end
|
114
114
|
|
115
115
|
it "does not log a warning or symlink a config file when there is no existing services file" do
|
@@ -119,10 +119,10 @@ describe "Deploying an application with services" do
|
|
119
119
|
shared_services_file.delete
|
120
120
|
redeploy_test_application('config' => {'services_setup_command' => 'false'})
|
121
121
|
|
122
|
-
shared_services_file.
|
123
|
-
symlinked_services_file.
|
122
|
+
expect(shared_services_file).not_to exist
|
123
|
+
expect(symlinked_services_file).not_to exist
|
124
124
|
|
125
|
-
read_output.
|
125
|
+
expect(read_output).not_to match(/WARNING/)
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -138,15 +138,15 @@ describe "Deploying an application with services" do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
it "replaces the config with the new one (and symlinks)" do
|
141
|
-
shared_services_file.
|
142
|
-
shared_services_file.
|
143
|
-
shared_services_file.read.
|
141
|
+
expect(shared_services_file).to exist
|
142
|
+
expect(shared_services_file).not_to be_symlink
|
143
|
+
expect(shared_services_file.read).to eq("#{@new_services_yml}\n")
|
144
144
|
|
145
|
-
symlinked_services_file.
|
146
|
-
symlinked_services_file.
|
147
|
-
shared_services_file.read.
|
145
|
+
expect(symlinked_services_file).to exist
|
146
|
+
expect(symlinked_services_file).to be_symlink
|
147
|
+
expect(shared_services_file.read).to eq("#{@new_services_yml}\n")
|
148
148
|
|
149
|
-
read_output.
|
149
|
+
expect(read_output).not_to match(/WARNING/)
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
data/spec/shell_spec.rb
CHANGED
data/spec/source/archive_spec.rb
CHANGED
data/spec/source/git_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe EY::Serverside::Source::Git do
|
4
4
|
before do
|
5
|
-
described_class.
|
5
|
+
allow_any_instance_of(described_class).to receive(:runner) { RunnerDouble }
|
6
6
|
end
|
7
7
|
|
8
8
|
it "errors when required options are not used" do
|
data/spec/spec_helper.rb
CHANGED
@@ -275,7 +275,6 @@ exec "$@"
|
|
275
275
|
|
276
276
|
@argv = @adapter.deploy.commands.last.to_argv[2..-1]
|
277
277
|
|
278
|
-
@binpath = File.expand_path(File.join(File.dirname(__FILE__), '..', 'bin', 'engineyard-serverside'))
|
279
278
|
FullTestDeploy.on_create_callback = block
|
280
279
|
|
281
280
|
mock_bundler(options['bundle_install_fails'])
|
data/spec/sqlite3_deploy_spec.rb
CHANGED
@@ -13,26 +13,26 @@ describe "Deploying an application with sqlite3 as the only DB adapter in the Ge
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should symlink database.sqlite3.yml' do
|
16
|
-
@release_path.join('config', 'database.yml').
|
16
|
+
expect(@release_path.join('config', 'database.yml')).to exist
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should create database.sqlite3.yml in a shared location' do
|
20
|
-
@shared_path.join('config', 'database.sqlite3.yml').
|
20
|
+
expect(@shared_path.join('config', 'database.sqlite3.yml')).to exist
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'should put a reference to a shared database in database.sqlite3.yml' do
|
24
24
|
contents = @release_path.join('config', 'database.yml').read
|
25
|
-
contents.
|
25
|
+
expect(contents).to include(@shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s)
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'should create the shared database' do
|
29
|
-
@shared_path.join('databases', "#{@framework_env}.sqlite3").
|
29
|
+
expect(@shared_path.join('databases', "#{@framework_env}.sqlite3")).to exist
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'should contain valid yaml config' do
|
33
33
|
config = YAML.load_file(@release_path.join('config', 'database.yml'))
|
34
|
-
config[@framework_env]['adapter'].
|
35
|
-
config[@framework_env]['database'].
|
34
|
+
expect(config[@framework_env]['adapter']).to eq('sqlite3')
|
35
|
+
expect(config[@framework_env]['database']).to eq(@shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s)
|
36
36
|
end
|
37
37
|
|
38
38
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Deploying an application with conflicting directories" do
|
4
|
+
before(:all) do
|
5
|
+
deploy_test_application('public_system')
|
6
|
+
end
|
7
|
+
|
8
|
+
it "does not remove the repository's public/system directory" do
|
9
|
+
expect(deploy_dir.join('current', 'public', 'system', 'cant_touch_this.txt')).to exist
|
10
|
+
end
|
11
|
+
|
12
|
+
it "warns that maintenance pages are broken" do
|
13
|
+
expect(read_output).to include("remove 'public/system' from your repository")
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,169 +1,150 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: engineyard-serverside
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 3
|
9
|
-
- 9
|
10
|
-
version: 2.3.9
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.4.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- EY Cloud Team
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-06-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: rspec
|
22
|
-
|
23
|
-
|
24
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
25
17
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
segments:
|
29
|
-
- 2
|
30
|
-
- 12
|
31
|
-
- 0
|
32
|
-
version: 2.12.0
|
33
|
-
prerelease: false
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.14'
|
34
20
|
type: :development
|
35
|
-
|
36
|
-
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
37
28
|
name: rake
|
38
|
-
|
39
|
-
|
40
|
-
requirements:
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
41
31
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 79
|
44
|
-
segments:
|
45
|
-
- 10
|
46
|
-
- 0
|
47
|
-
- 0
|
32
|
+
- !ruby/object:Gem::Version
|
48
33
|
version: 10.0.0
|
49
|
-
prerelease: false
|
50
34
|
type: :development
|
51
|
-
requirement: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rdoc
|
54
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
|
-
requirements:
|
57
|
-
- - ">="
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 3
|
60
|
-
segments:
|
61
|
-
- 0
|
62
|
-
version: "0"
|
63
35
|
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 10.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rdoc
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
64
48
|
type: :development
|
65
|
-
|
66
|
-
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
67
56
|
name: timecop
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
hash: 5
|
74
|
-
segments:
|
75
|
-
- 0
|
76
|
-
- 6
|
77
|
-
- 1
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
78
61
|
version: 0.6.1
|
79
|
-
prerelease: false
|
80
62
|
type: :development
|
81
|
-
requirement: *id004
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: simplecov
|
84
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
85
|
-
none: false
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
hash: 3
|
90
|
-
segments:
|
91
|
-
- 0
|
92
|
-
version: "0"
|
93
63
|
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.6.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
94
76
|
type: :development
|
95
|
-
|
96
|
-
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
97
84
|
name: engineyard-cloud-client
|
98
|
-
|
99
|
-
|
100
|
-
requirements:
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
101
87
|
- - ~>
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
hash: 11
|
104
|
-
segments:
|
105
|
-
- 1
|
106
|
-
- 0
|
107
|
-
- 14
|
88
|
+
- !ruby/object:Gem::Version
|
108
89
|
version: 1.0.14
|
109
|
-
prerelease: false
|
110
90
|
type: :development
|
111
|
-
|
112
|
-
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.0.14
|
97
|
+
- !ruby/object:Gem::Dependency
|
113
98
|
name: engineyard-serverside-adapter
|
114
|
-
|
115
|
-
|
116
|
-
requirements:
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
117
101
|
- - ~>
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
hash: 7
|
120
|
-
segments:
|
121
|
-
- 2
|
122
|
-
- 2
|
123
|
-
- 0
|
102
|
+
- !ruby/object:Gem::Version
|
124
103
|
version: 2.2.0
|
125
|
-
prerelease: false
|
126
104
|
type: :development
|
127
|
-
requirement: *id007
|
128
|
-
- !ruby/object:Gem::Dependency
|
129
|
-
name: sqlite3
|
130
|
-
version_requirements: &id008 !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
|
-
requirements:
|
133
|
-
- - ">="
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
hash: 3
|
136
|
-
segments:
|
137
|
-
- 0
|
138
|
-
version: "0"
|
139
105
|
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.2.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: sqlite3
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
140
118
|
type: :development
|
141
|
-
|
142
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
143
126
|
name: mime-types
|
144
|
-
|
145
|
-
|
146
|
-
requirements:
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
147
129
|
- - ~>
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
|
150
|
-
segments:
|
151
|
-
- 1
|
152
|
-
- 25
|
153
|
-
version: "1.25"
|
154
|
-
prerelease: false
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.25'
|
155
132
|
type: :development
|
156
|
-
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ~>
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.25'
|
157
139
|
description:
|
158
140
|
email: cloud@engineyard.com
|
159
|
-
executables:
|
141
|
+
executables:
|
160
142
|
- engineyard-serverside
|
161
143
|
extensions: []
|
162
|
-
|
163
144
|
extra_rdoc_files: []
|
164
|
-
|
165
|
-
files:
|
145
|
+
files:
|
166
146
|
- bin/engineyard-serverside
|
147
|
+
- bin/engineyard-serverside-execute-hook
|
167
148
|
- lib/engineyard-serverside/about.rb
|
168
149
|
- lib/engineyard-serverside/cli.rb
|
169
150
|
- lib/engineyard-serverside/cli_helpers.rb
|
@@ -191,7 +172,6 @@ files:
|
|
191
172
|
- lib/engineyard-serverside/source/archive.rb
|
192
173
|
- lib/engineyard-serverside/source/git.rb
|
193
174
|
- lib/engineyard-serverside/source.rb
|
194
|
-
- lib/engineyard-serverside/source_strategy.rb
|
195
175
|
- lib/engineyard-serverside/spawner.rb
|
196
176
|
- lib/engineyard-serverside/task.rb
|
197
177
|
- lib/engineyard-serverside/version.rb
|
@@ -351,6 +331,8 @@ files:
|
|
351
331
|
- spec/fixtures/repos/default/Gemfile
|
352
332
|
- spec/fixtures/repos/default/Gemfile.lock
|
353
333
|
- spec/fixtures/repos/default/README
|
334
|
+
- spec/fixtures/repos/executable_hooks/deploy/before_restart
|
335
|
+
- spec/fixtures/repos/executable_hooks/README
|
354
336
|
- spec/fixtures/repos/ey_yml/config/ey.yml
|
355
337
|
- spec/fixtures/repos/ey_yml/deploy/before_migrate.rb
|
356
338
|
- spec/fixtures/repos/ey_yml/Gemfile
|
@@ -406,6 +388,11 @@ files:
|
|
406
388
|
- spec/fixtures/repos/php_no_composer_lock/composer.json
|
407
389
|
- spec/fixtures/repos/php_no_composer_lock/public/index.php
|
408
390
|
- spec/fixtures/repos/php_no_composer_lock/README
|
391
|
+
- spec/fixtures/repos/public_system/ey.yml
|
392
|
+
- spec/fixtures/repos/public_system/Gemfile
|
393
|
+
- spec/fixtures/repos/public_system/Gemfile.lock
|
394
|
+
- spec/fixtures/repos/public_system/public/system/cant_touch_this.txt
|
395
|
+
- spec/fixtures/repos/public_system/README
|
409
396
|
- spec/fixtures/repos/sqlite3/Gemfile
|
410
397
|
- spec/fixtures/repos/sqlite3/Gemfile.lock
|
411
398
|
- spec/fixtures/repos/sqlite3/README
|
@@ -428,42 +415,32 @@ files:
|
|
428
415
|
- spec/sqlite3_deploy_spec.rb
|
429
416
|
- spec/support/integration.rb
|
430
417
|
- spec/support/source_doubles.rb
|
418
|
+
- spec/symlink_spec.rb
|
431
419
|
homepage: http://github.com/engineyard/engineyard-serverside
|
432
|
-
licenses:
|
420
|
+
licenses:
|
433
421
|
- MIT
|
422
|
+
metadata: {}
|
434
423
|
post_install_message:
|
435
424
|
rdoc_options: []
|
436
|
-
|
437
|
-
require_paths:
|
425
|
+
require_paths:
|
438
426
|
- lib
|
439
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
449
|
-
none: false
|
450
|
-
requirements:
|
451
|
-
- - ">="
|
452
|
-
- !ruby/object:Gem::Version
|
453
|
-
hash: 23
|
454
|
-
segments:
|
455
|
-
- 1
|
456
|
-
- 3
|
457
|
-
- 6
|
427
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
428
|
+
requirements:
|
429
|
+
- - ! '>='
|
430
|
+
- !ruby/object:Gem::Version
|
431
|
+
version: '0'
|
432
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
433
|
+
requirements:
|
434
|
+
- - ! '>='
|
435
|
+
- !ruby/object:Gem::Version
|
458
436
|
version: 1.3.6
|
459
437
|
requirements: []
|
460
|
-
|
461
438
|
rubyforge_project:
|
462
|
-
rubygems_version: 1.
|
439
|
+
rubygems_version: 2.1.10
|
463
440
|
signing_key:
|
464
|
-
specification_version:
|
441
|
+
specification_version: 4
|
465
442
|
summary: A gem that deploys ruby applications on EY Cloud instances
|
466
|
-
test_files:
|
443
|
+
test_files:
|
467
444
|
- spec/archive_deploy_spec.rb
|
468
445
|
- spec/basic_deploy_spec.rb
|
469
446
|
- spec/bundler_deploy_spec.rb
|
@@ -558,6 +535,8 @@ test_files:
|
|
558
535
|
- spec/fixtures/repos/default/Gemfile
|
559
536
|
- spec/fixtures/repos/default/Gemfile.lock
|
560
537
|
- spec/fixtures/repos/default/README
|
538
|
+
- spec/fixtures/repos/executable_hooks/deploy/before_restart
|
539
|
+
- spec/fixtures/repos/executable_hooks/README
|
561
540
|
- spec/fixtures/repos/ey_yml/config/ey.yml
|
562
541
|
- spec/fixtures/repos/ey_yml/deploy/before_migrate.rb
|
563
542
|
- spec/fixtures/repos/ey_yml/Gemfile
|
@@ -613,6 +592,11 @@ test_files:
|
|
613
592
|
- spec/fixtures/repos/php_no_composer_lock/composer.json
|
614
593
|
- spec/fixtures/repos/php_no_composer_lock/public/index.php
|
615
594
|
- spec/fixtures/repos/php_no_composer_lock/README
|
595
|
+
- spec/fixtures/repos/public_system/ey.yml
|
596
|
+
- spec/fixtures/repos/public_system/Gemfile
|
597
|
+
- spec/fixtures/repos/public_system/Gemfile.lock
|
598
|
+
- spec/fixtures/repos/public_system/public/system/cant_touch_this.txt
|
599
|
+
- spec/fixtures/repos/public_system/README
|
616
600
|
- spec/fixtures/repos/sqlite3/Gemfile
|
617
601
|
- spec/fixtures/repos/sqlite3/Gemfile.lock
|
618
602
|
- spec/fixtures/repos/sqlite3/README
|
@@ -635,3 +619,4 @@ test_files:
|
|
635
619
|
- spec/sqlite3_deploy_spec.rb
|
636
620
|
- spec/support/integration.rb
|
637
621
|
- spec/support/source_doubles.rb
|
622
|
+
- spec/symlink_spec.rb
|