engineyard-serverside 2.3.9 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|