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.
Files changed (42) hide show
  1. checksums.yaml +15 -0
  2. data/bin/engineyard-serverside-execute-hook +31 -0
  3. data/lib/engineyard-serverside/about.rb +3 -0
  4. data/lib/engineyard-serverside/cli.rb +3 -1
  5. data/lib/engineyard-serverside/configuration.rb +5 -0
  6. data/lib/engineyard-serverside/deploy.rb +25 -7
  7. data/lib/engineyard-serverside/maintenance.rb +14 -1
  8. data/lib/engineyard-serverside/paths.rb +4 -0
  9. data/lib/engineyard-serverside/server.rb +3 -2
  10. data/lib/engineyard-serverside/version.rb +1 -1
  11. data/spec/archive_deploy_spec.rb +4 -10
  12. data/spec/basic_deploy_spec.rb +3 -3
  13. data/spec/bundler_deploy_spec.rb +32 -32
  14. data/spec/configuration_spec.rb +42 -42
  15. data/spec/custom_deploy_spec.rb +9 -9
  16. data/spec/deploy_hook_spec.rb +103 -89
  17. data/spec/deprecation_spec.rb +3 -3
  18. data/spec/ey_yml_customized_deploy_spec.rb +21 -21
  19. data/spec/fixtures/repos/executable_hooks/README +1 -0
  20. data/spec/fixtures/repos/executable_hooks/deploy/before_restart +72 -0
  21. data/spec/fixtures/repos/public_system/Gemfile +4 -0
  22. data/spec/fixtures/repos/public_system/Gemfile.lock +12 -0
  23. data/spec/fixtures/repos/public_system/README +5 -0
  24. data/spec/fixtures/repos/public_system/ey.yml +3 -0
  25. data/spec/fixtures/repos/public_system/public/system/cant_touch_this.txt +3 -0
  26. data/spec/lockfile_parser_spec.rb +26 -26
  27. data/spec/multi_dependency_manager_spec.rb +3 -3
  28. data/spec/nodejs_deploy_spec.rb +2 -2
  29. data/spec/php_deploy_spec.rb +7 -7
  30. data/spec/rails31_deploy_spec.rb +56 -56
  31. data/spec/restart_spec.rb +3 -3
  32. data/spec/rollback_spec.rb +19 -19
  33. data/spec/server_spec.rb +16 -16
  34. data/spec/services_deploy_spec.rb +40 -40
  35. data/spec/shell_spec.rb +1 -1
  36. data/spec/source/archive_spec.rb +1 -1
  37. data/spec/source/git_spec.rb +1 -1
  38. data/spec/spec_helper.rb +0 -1
  39. data/spec/sqlite3_deploy_spec.rb +6 -6
  40. data/spec/symlink_spec.rb +15 -0
  41. metadata +139 -154
  42. data/lib/engineyard-serverside/source_strategy.rb +0 -77
@@ -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.should == %w(
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.should include('enable_maintenance_page')
41
+ expect(deployer.call_order).to include('enable_maintenance_page')
42
42
  end
43
43
  end
@@ -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').should exist
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').should exist
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.should == 2
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.should =~ /Rolling back to previous release.*#{@good_revision}/
37
- out.should =~ /Restarting with previous release./
38
- out.should =~ /Finished rollback/
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').should exist
41
- @bad_release.should_not exist
42
- @good_release.join('restart').should exist
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').should_not exist
61
- @bad_release.should exist
62
- @good_release.should exist
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.should =~ /Rolling back to previous release.*#{@good_revision}/
75
- out.should =~ /Restarting with previous release./
76
- out.should =~ /Finished rollback/
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').should exist
79
- @bad_release.should_not exist
80
- @good_release.join('restart').should exist
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.should =~ /--without only test/
84
+ expect(read_output).to match(/--without only test/)
85
85
  end
86
86
  end
87
87
  end
@@ -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).should be_empty
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.should == 1
10
+ expect(servers.size).to eq(1)
11
11
  end
12
12
 
13
13
  it "rejects duplicates" do
14
- lambda do
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.should raise_error(EY::Serverside::Servers::DuplicateHostname)
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.should == Set[:fire, :water] }
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}.should == ['firewater']
38
- @servers.roles('fire').map{|s| s.hostname}.should == ['firewater'] # hits the cache the second time
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.should == 2
43
- @servers.roles(:ice).map{|s| s.hostname}.sort.should == ['icewater','localhost']
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).should == @servers
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).should == @servers
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.should == 2
57
- servers.map{|s| s.hostname}.sort.should == ['icewater','localhost']
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.should == 'localhost'
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.should == 2
67
- @servers.remote.map {|s| s.hostname}.sort.should == ['firewater','icewater']
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.should include("WARNING: Gemfile.lock does not contain ey_config")
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.should_not =~ /WARNING/
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.should exist
42
- shared_services_file.should_not be_symlink
43
- shared_services_file.read.should == "#{@invalid_services_yml}\n"
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.should exist
46
- symlinked_services_file.should be_symlink
47
- shared_services_file.read.should == "#{@invalid_services_yml}\n"
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.should_not =~ /WARNING/
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.should exist
62
- shared_services_file.should_not be_symlink
63
- shared_services_file.read.should == "#{services_yml}\n"
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.should exist
66
- symlinked_services_file.should be_symlink
67
- shared_services_file.read.should == "#{services_yml}\n"
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.should_not =~ /WARNING/
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.should exist
85
- shared_services_file.should_not be_symlink
86
- shared_services_file.read.should == "#{services_yml}\n"
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.should exist
89
- symlinked_services_file.should be_symlink
90
- shared_services_file.read.should == "#{services_yml}\n"
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.should_not =~ /WARNING/
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.should exist
105
- shared_services_file.should_not be_symlink
106
- shared_services_file.read.should == "#{services_yml}\n"
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.should exist
109
- symlinked_services_file.should be_symlink
110
- shared_services_file.read.should == "#{services_yml}\n"
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.should include('WARNING: External services configuration not updated')
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.should_not exist
123
- symlinked_services_file.should_not exist
122
+ expect(shared_services_file).not_to exist
123
+ expect(symlinked_services_file).not_to exist
124
124
 
125
- read_output.should_not =~ /WARNING/
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.should exist
142
- shared_services_file.should_not be_symlink
143
- shared_services_file.read.should == "#{@new_services_yml}\n"
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.should exist
146
- symlinked_services_file.should be_symlink
147
- shared_services_file.read.should == "#{@new_services_yml}\n"
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.should_not =~ /WARNING/
149
+ expect(read_output).not_to match(/WARNING/)
150
150
  end
151
151
  end
152
152
 
@@ -37,7 +37,7 @@ describe EY::Serverside::Shell do
37
37
  tstp_3 = "+10m 25s "
38
38
  notstp = " "
39
39
  output.rewind
40
- output.read.should == <<-OUTPUT
40
+ expect(output.read).to eq <<-OUTPUT
41
41
  #{notstp} debug
42
42
 
43
43
  \e[1m\e[33m#{tstp_1} !> notice
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe EY::Serverside::Source::Archive do
4
4
  before do
5
- described_class.any_instance.stub(:runner) { RunnerDouble }
5
+ allow_any_instance_of(described_class).to receive(:runner) { RunnerDouble }
6
6
  end
7
7
 
8
8
  context "source" do
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe EY::Serverside::Source::Git do
4
4
  before do
5
- described_class.any_instance.stub(:runner) { RunnerDouble }
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
@@ -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'])
@@ -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').should exist
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').should exist
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.should include(@shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s)
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").should exist
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'].should == 'sqlite3'
35
- config[@framework_env]['database'].should == @shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s
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
- hash: 17
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
- date: 2014-03-26 00:00:00 Z
19
- dependencies:
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
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
25
17
  - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 63
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
- requirement: *id001
36
- - !ruby/object:Gem::Dependency
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
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
- none: false
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
- requirement: *id003
66
- - !ruby/object:Gem::Dependency
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
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
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
- requirement: *id005
96
- - !ruby/object:Gem::Dependency
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
- version_requirements: &id006 !ruby/object:Gem::Requirement
99
- none: false
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
- requirement: *id006
112
- - !ruby/object:Gem::Dependency
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
- version_requirements: &id007 !ruby/object:Gem::Requirement
115
- none: false
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
- requirement: *id008
142
- - !ruby/object:Gem::Dependency
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
- version_requirements: &id009 !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
147
129
  - - ~>
148
- - !ruby/object:Gem::Version
149
- hash: 61
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
- requirement: *id009
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
- none: false
441
- requirements:
442
- - - ">="
443
- - !ruby/object:Gem::Version
444
- hash: 3
445
- segments:
446
- - 0
447
- version: "0"
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.8.25
439
+ rubygems_version: 2.1.10
463
440
  signing_key:
464
- specification_version: 3
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