engineyard-serverside 2.3.7 → 2.3.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -84,6 +84,8 @@ module EY
84
84
  def_option :stack, nil
85
85
  def_option(:source_class) { fetch_deprecated(:strategy, :source_class, nil) } # strategy is deprecated
86
86
  def_option :branch, 'master'
87
+ def_option(:input_ref) { branch }
88
+ def_option :deployed_by, 'Automation (User name not available)'
87
89
  def_option :current_roles, []
88
90
  def_option :current_name, nil
89
91
  def_option :copy_exclude, []
@@ -48,7 +48,7 @@ To fix this problem, commit your composer.lock to the repository and redeploy.
48
48
  end
49
49
 
50
50
  def composer_selfupdate
51
- run "composer self-update"
51
+ run "command -v composer | xargs -I composer find composer -user #{config.user} -exec {} self-update \\;"
52
52
  end
53
53
 
54
54
  def composer_available?
@@ -218,6 +218,8 @@ chmod 0700 #{path}
218
218
  def rollback
219
219
  if config.rollback_paths!
220
220
  begin
221
+ load_ey_yml
222
+ require_custom_tasks
221
223
  rolled_back_release = paths.latest_release
222
224
  shell.status "Rolling back to previous release: #{short_log_message(config.active_revision)}"
223
225
  abort_on_bad_paths_in_release_directory
@@ -1,4 +1,5 @@
1
1
  require 'engineyard-serverside/shell/helpers'
2
+ require 'rbconfig'
2
3
 
3
4
  module EY
4
5
  module Serverside
@@ -57,8 +58,13 @@ Please fix this error before retrying.
57
58
  ERROR
58
59
  end
59
60
 
61
+ # Ideally we'd use RbConfig.ruby, but that doesn't work on 1.8.7.
62
+ def ruby_bin
63
+ File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])
64
+ end
65
+
60
66
  def syntax_error(file)
61
- output = `ruby -c #{file} 2>&1`
67
+ output = `#{ruby_bin} -c #{file} 2>&1`
62
68
  output unless output =~ /Syntax OK/
63
69
  end
64
70
 
@@ -67,8 +67,10 @@ module EY
67
67
  yield local? ? command : remote_command(command)
68
68
  end
69
69
 
70
+ # Explicitly putting that space in helps us make sure we don't
71
+ # accidentally leave off the space on the end of ssh_command.
70
72
  def remote_command(command)
71
- ssh_command + Escape.shell_command(["#{user}@#{hostname}", command])
73
+ ssh_command + " " + Escape.shell_command(["#{user}@#{hostname}", command])
72
74
  end
73
75
 
74
76
  # Make a known hosts tempfile to absorb host fingerprints so we don't show
@@ -82,7 +84,7 @@ module EY
82
84
  end
83
85
 
84
86
  def ssh_command
85
- "ssh -i #{ENV['HOME']}/.ssh/internal -o StrictHostKeyChecking=no -o UserKnownHostsFile=#{self.class.known_hosts_file.path} -o PasswordAuthentication=no "
87
+ "ssh -i #{ENV['HOME']}/.ssh/internal -o StrictHostKeyChecking=no -o UserKnownHostsFile=#{self.class.known_hosts_file.path} -o PasswordAuthentication=no -o ServerAliveInterval=60"
86
88
  end
87
89
 
88
90
  end
@@ -45,34 +45,46 @@ class EY::Serverside::Source::Git < EY::Serverside::Source
45
45
  # Returns .
46
46
  def checkout
47
47
  shell.status "Deploying revision #{short_log_message(to_checkout)}"
48
- q = opts[:verbose] ? '' : '--quiet'
49
48
  in_source_cache do
50
- (run_and_success?("git checkout --force #{q} '#{to_checkout}'") ||
51
- run_and_success?("git reset --hard #{q} '#{to_checkout}'")) &&
49
+ (run_and_success?("git checkout --force #{quiet} '#{to_checkout}'") ||
50
+ run_and_success?("git reset --hard #{quiet} '#{to_checkout}'")) &&
52
51
  run_and_success?("git submodule sync") &&
53
52
  run_and_success?("git submodule update --init") &&
54
53
  run_and_success?("git clean -dfq")
55
54
  end
56
55
  end
57
56
 
58
- # Internal:
59
- #
60
- # Returns .
57
+ # Remove a local branch with the same name as a branch that is being
58
+ # checked out. If there is already a local branch with the same name,
59
+ # then git checkout will checkout the possibly out-of-date local branch
60
+ # instead of the most current remote.
61
61
  def clean_local_branch
62
62
  run_and_success?("#{git} show-branch #{ref} > /dev/null 2>&1 && #{git} branch -D #{ref} > /dev/null 2>&1")
63
63
  end
64
64
 
65
- # Internal:
65
+ # Prune and then fetch origin
66
+ #
67
+ # OR, if origin has changed locations
68
+ #
69
+ # Remove and reclone the repository from url
66
70
  def fetch
67
71
  run_and_success?(fetch_command)
68
72
  end
69
73
 
74
+ # Pruning before fetching makes sure that branches removed from remote are
75
+ # removed locally. This hopefully prevents problems where a branch name
76
+ # collides with a branch directory name (among other problems).
77
+ #
78
+ # Note that --prune doesn't succeed at doing this, even though it seems like
79
+ # it should.
70
80
  def fetch_command
71
81
  if usable_repository?
72
- q = opts[:verbose] ? '' : '--quiet'
73
- "#{git} fetch --force --prune --update-head-ok #{q} origin 'refs/heads/*:refs/remotes/origin/*' '+refs/tags/*:refs/tags/*' 2>&1"
82
+ prune_c = "#{git} remote prune origin 2>&1"
83
+ fetch_c = "#{git} fetch --force --prune --update-head-ok #{quiet} origin '+refs/heads/*:refs/remotes/origin/*' '+refs/tags/*:refs/tags/*' 2>&1"
84
+
85
+ "#{prune_c} && #{fetch_c}"
74
86
  else
75
- "rm -rf #{repository_cache} && git clone -q #{uri} #{repository_cache} 2>&1"
87
+ "rm -rf #{repository_cache} && git clone #{quiet} #{uri} #{repository_cache} 2>&1"
76
88
  end
77
89
  end
78
90
 
@@ -102,4 +114,8 @@ class EY::Serverside::Source::Git < EY::Serverside::Source
102
114
  run_and_success?("#{git} show-branch origin/#{ref} > /dev/null 2>&1")
103
115
  end
104
116
 
117
+ def quiet
118
+ @quiet ||= opts[:verbose] ? '' : '--quiet'
119
+ end
120
+
105
121
  end
@@ -1,5 +1,5 @@
1
1
  module EY
2
2
  module Serverside
3
- VERSION = '2.3.7'
3
+ VERSION = '2.3.9'
4
4
  end
5
5
  end
@@ -32,6 +32,8 @@ describe EY::Serverside::Deploy::Configuration do
32
32
  @config.ignore_gemfile_lock_warning.should == false
33
33
  @config.bundle_without.should == %w[test development]
34
34
  @config.extra_bundle_install_options.should == %w[--without test development]
35
+ @config.deployed_by.should == "Automation (User name not available)"
36
+ @config.input_ref.should == @config.branch
35
37
  end
36
38
 
37
39
  it "raises when required options are not given" do
@@ -44,9 +46,10 @@ describe EY::Serverside::Deploy::Configuration do
44
46
  end
45
47
 
46
48
  context "strategies" do
47
- let(:options) {
49
+ let(:options) do
48
50
  { "app" => "serverside" }
49
- }
51
+ end
52
+
50
53
  it "uses strategy if set" do
51
54
  @config = EY::Serverside::Deploy::Configuration.new(
52
55
  options.merge({'strategy' => 'IntegrationSpec', 'git' => 'git@github.com:engineyard/todo.git'})
@@ -90,7 +93,7 @@ describe EY::Serverside::Deploy::Configuration do
90
93
  'environment_name' => 'env_name',
91
94
  'account_name' => 'acc',
92
95
  'branch' => 'branch_from_command_line',
93
- 'config' => MultiJson.dump({'custom' => 'custom_from_extra_config', 'maintenance_on_migrate' => 'false', 'precompile_assets' => 'false'})
96
+ 'config' => MultiJson.dump({'custom' => 'custom_from_extra_config', 'maintenance_on_migrate' => 'false', 'precompile_assets' => 'false', 'deployed_by' => 'Martin Emde', 'input_ref' => 'input_branch'})
94
97
  })
95
98
  end
96
99
 
@@ -113,6 +116,11 @@ describe EY::Serverside::Deploy::Configuration do
113
116
  it "doesn't bundle --without the framework_env" do
114
117
  @config.bundle_without.should == %w[test]
115
118
  end
119
+
120
+ it "gets deployed_by and input_ref correct" do
121
+ @config.deployed_by.should == "Martin Emde"
122
+ @config.input_ref.should == "input_branch"
123
+ end
116
124
  end
117
125
 
118
126
  describe "ey.yml loading" do
@@ -14,7 +14,7 @@ describe "Deploying an application that uses Node.js and NPM" do
14
14
  npm_cmd = @deployer.commands.grep(/npm install/).first
15
15
  npm_cmd.should_not be_nil
16
16
 
17
- update_cmd = @deployer.commands.grep(/composer self-update/).first
17
+ update_cmd = @deployer.commands.grep(/composer.*self-update/).first
18
18
  update_cmd.should_not be_nil
19
19
 
20
20
  composer_cmd = @deployer.commands.grep(/composer install/).first
@@ -16,10 +16,10 @@ describe "Deploying an application that uses PHP and Composer" do
16
16
  install_cmd.should_not be_nil
17
17
  end
18
18
 
19
- it "runs 'composer self-update' before 'composer install'" do
19
+ it "attempts to run 'composer self-update' before 'composer install'" do
20
20
  update_cmd = nil
21
21
  @deployer.commands.each do |cmd|
22
- update_cmd ||= /composer self-update/.match(cmd)
22
+ update_cmd ||= /composer.*self-update/.match(cmd)
23
23
  if /composer install/.match(cmd)
24
24
  update_cmd.should_not be nil
25
25
  end
@@ -52,10 +52,10 @@ describe "Deploying an application that uses PHP and Composer" do
52
52
  install_cmd.should_not be_nil
53
53
  end
54
54
 
55
- it "runs 'composer self-update' before 'composer install'" do
55
+ it "attempts to run 'composer self-update' before 'composer install'" do
56
56
  update_cmd = nil
57
57
  @deployer.commands.each do |cmd|
58
- update_cmd ||= /composer self-update/.match(cmd)
58
+ update_cmd ||= /composer.*self-update/.match(cmd)
59
59
  if /composer install/.match(cmd)
60
60
  update_cmd.should_not be nil
61
61
  end
@@ -66,13 +66,15 @@ describe "Deploying an application that uses PHP and Composer" do
66
66
 
67
67
  end
68
68
 
69
- context "without composer available" do
69
+ unless $COMPOSER_INSTALLED
70
+ context "without composer available" do
70
71
 
71
- it "fails to deploy" do
72
- expect {deploy_test_application('php_composer_lock')}.to raise_error EY::Serverside::RemoteFailure
73
- expect {deploy_test_application('php_no_composer_lock')}.to raise_error EY::Serverside::RemoteFailure
74
- end
72
+ it "fails to deploy" do
73
+ expect {deploy_test_application('php_composer_lock')}.to raise_error EY::Serverside::RemoteFailure
74
+ expect {deploy_test_application('php_no_composer_lock')}.to raise_error EY::Serverside::RemoteFailure
75
+ end
75
76
 
77
+ end
76
78
  end
77
79
  end
78
80
  end
@@ -1,55 +1,56 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Rolling back" do
4
+ def setup_good_and_bad_deploy(repo)
5
+ deploy_test_application(repo, 'migrate' => nil)
6
+ @good_revision = deploy_dir.join('current', 'REVISION').read.strip
7
+ deploy_dir.join('current', 'REVISION').should exist
8
+ deploy_dir.join('current', 'restart').delete
9
+ deploy_test_application(repo, 'migrate' => nil)
10
+ deploy_dir.join('current', 'REVISION').should exist
11
+ deploy_dir.join('current', 'restart').delete
12
+
13
+ releases = @deployer.config.paths.all_releases
14
+ releases.size.should == 2
15
+ @good_release = releases.first
16
+ @bad_release = releases.last
17
+ end
18
+
19
+ def rollback
20
+ argv = @adapter.rollback.commands.last.to_argv[2..-1]
21
+ with_mocked_commands do
22
+ capture do
23
+ EY::Serverside::CLI.start(argv)
24
+ end
25
+ end
26
+ end
27
+
4
28
  context "without bundler" do
5
29
  before(:all) do
6
- deploy_test_application('not_bundled', 'migrate' => nil)
7
- @good_revision = deploy_dir.join('current', 'REVISION').read.strip
8
- deploy_dir.join('current', 'REVISION').should exist
9
- deploy_dir.join('current', 'restart').delete
10
- deploy_test_application('not_bundled', 'migrate' => nil)
11
- deploy_dir.join('current', 'REVISION').should exist
12
- deploy_dir.join('current', 'restart').delete
30
+ setup_good_and_bad_deploy('not_bundled')
31
+ rollback
13
32
  end
14
33
 
15
34
  it "rolls back to the older deploy" do
16
- releases = @deployer.config.paths.all_releases
17
- releases.size.should == 2
18
- good_release = releases.first
19
- bad_release = releases.last
20
-
21
- @deployer.rollback
22
35
  out = read_output
23
36
  out.should =~ /Rolling back to previous release.*#{@good_revision}/
24
37
  out.should =~ /Restarting with previous release./
25
38
  out.should =~ /Finished rollback/
26
39
 
27
40
  deploy_dir.join('current', 'restart').should exist
28
- bad_release.should_not exist
29
- good_release.join('restart').should exist
41
+ @bad_release.should_not exist
42
+ @good_release.join('restart').should exist
30
43
  end
31
44
  end
32
45
 
33
46
  context "with a problematic file in the releases dir" do
34
47
  before(:all) do
35
- deploy_test_application('not_bundled', 'migrate' => nil)
36
- @good_revision = deploy_dir.join('current', 'REVISION').read.strip
37
- deploy_dir.join('current', 'REVISION').should exist
38
- deploy_dir.join('current', 'restart').delete
39
- deploy_test_application('not_bundled', 'migrate' => nil)
40
- deploy_dir.join('current', 'REVISION').should exist
41
- deploy_dir.join('current', 'restart').delete
48
+ setup_good_and_bad_deploy('not_bundled')
49
+ @deployer.config.paths.releases.join('tmp').mkpath
50
+ expect { rollback }.to raise_error
42
51
  end
43
52
 
44
53
  it "rolls back to the older deploy" do
45
- releases = @deployer.config.paths.all_releases
46
- releases.size.should == 2
47
- good_release = releases.first
48
- bad_release = releases.last
49
-
50
- @deployer.config.paths.releases.join('tmp').mkpath
51
-
52
- expect { @deployer.rollback }.to raise_error
53
54
  out = read_output
54
55
  expect(out).to include("Bad paths found in #{@deployer.config.paths.releases}:")
55
56
  expect(out).to include(@deployer.config.paths.releases.join('tmp').to_s)
@@ -57,37 +58,30 @@ describe "Rolling back" do
57
58
  expect(out).to_not include("Restarting with previous release.")
58
59
 
59
60
  deploy_dir.join('current', 'restart').should_not exist
60
- bad_release.should exist
61
- good_release.should exist
61
+ @bad_release.should exist
62
+ @good_release.should exist
62
63
  end
63
64
  end
64
65
 
65
66
  context "with complex config" do
66
67
  before(:all) do
67
- deploy_test_application('ey_yml', 'migrate' => nil)
68
- @good_revision = deploy_dir.join('current', 'REVISION').read.strip
69
- deploy_dir.join('current', 'REVISION').should exist
70
- deploy_dir.join('current', 'restart').delete
71
- deploy_test_application('ey_yml', 'migrate' => nil)
72
- deploy_dir.join('current', 'REVISION').should exist
73
- deploy_dir.join('current', 'restart').delete
68
+ setup_good_and_bad_deploy('ey_yml')
69
+ rollback
74
70
  end
75
71
 
76
72
  it "rolls back to the older deploy" do
77
- releases = @deployer.config.paths.all_releases
78
- releases.size.should == 2
79
- good_release = releases.first
80
- bad_release = releases.last
81
-
82
- @deployer.rollback
83
73
  out = read_output
84
74
  out.should =~ /Rolling back to previous release.*#{@good_revision}/
85
75
  out.should =~ /Restarting with previous release./
86
76
  out.should =~ /Finished rollback/
87
77
 
88
78
  deploy_dir.join('current', 'restart').should exist
89
- bad_release.should_not exist
90
- good_release.join('restart').should exist
79
+ @bad_release.should_not exist
80
+ @good_release.join('restart').should exist
81
+ end
82
+
83
+ it "loads and uses ey.yml during rollback" do
84
+ read_output.should =~ /--without only test/
91
85
  end
92
86
  end
93
87
  end
@@ -56,7 +56,7 @@ class EY::Serverside::Source::IntegrationSpec < EY::Serverside::Source
56
56
 
57
57
  def initialize(*a)
58
58
  super
59
- @source_repo = Pathname.new(uri)
59
+ @source_repo = Pathname.new(uri) if uri # doesn't exist for rollback
60
60
  end
61
61
 
62
62
  def update_repository_cache
metadata CHANGED
@@ -1,148 +1,168 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: engineyard-serverside
3
- version: !ruby/object:Gem::Version
4
- version: 2.3.7
3
+ version: !ruby/object:Gem::Version
4
+ hash: 17
5
+ prerelease:
6
+ segments:
7
+ - 2
8
+ - 3
9
+ - 9
10
+ version: 2.3.9
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - EY Cloud Team
8
14
  autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
- date: 2013-11-18 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2014-03-26 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
14
21
  name: rspec
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
17
25
  - - ~>
18
- - !ruby/object:Gem::Version
26
+ - !ruby/object:Gem::Version
27
+ hash: 63
28
+ segments:
29
+ - 2
30
+ - 12
31
+ - 0
19
32
  version: 2.12.0
20
- type: :development
21
33
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: 2.12.0
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
34
  type: :development
35
+ requirement: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ hash: 79
44
+ segments:
45
+ - 10
46
+ - 0
47
+ - 0
48
+ version: 10.0.0
35
49
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ! '>='
39
- - !ruby/object:Gem::Version
40
- version: '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'
48
50
  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"
49
63
  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
64
+ type: :development
65
+ requirement: *id003
66
+ - !ruby/object:Gem::Dependency
56
67
  name: timecop
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '='
60
- - !ruby/object:Gem::Version
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
61
78
  version: 0.6.1
62
- type: :development
63
79
  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'
76
80
  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"
77
93
  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
94
+ type: :development
95
+ requirement: *id005
96
+ - !ruby/object:Gem::Dependency
84
97
  name: engineyard-cloud-client
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
98
+ version_requirements: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
87
101
  - - ~>
88
- - !ruby/object:Gem::Version
102
+ - !ruby/object:Gem::Version
103
+ hash: 11
104
+ segments:
105
+ - 1
106
+ - 0
107
+ - 14
89
108
  version: 1.0.14
90
- type: :development
91
109
  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
110
+ type: :development
111
+ requirement: *id006
112
+ - !ruby/object:Gem::Dependency
98
113
  name: engineyard-serverside-adapter
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
114
+ version_requirements: &id007 !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
101
117
  - - ~>
102
- - !ruby/object:Gem::Version
118
+ - !ruby/object:Gem::Version
119
+ hash: 7
120
+ segments:
121
+ - 2
122
+ - 2
123
+ - 0
103
124
  version: 2.2.0
104
- type: :development
105
125
  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'
118
126
  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"
119
139
  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
140
+ type: :development
141
+ requirement: *id008
142
+ - !ruby/object:Gem::Dependency
126
143
  name: mime-types
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
144
+ version_requirements: &id009 !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
129
147
  - - ~>
130
- - !ruby/object:Gem::Version
131
- version: '1.25'
132
- type: :development
148
+ - !ruby/object:Gem::Version
149
+ hash: 61
150
+ segments:
151
+ - 1
152
+ - 25
153
+ version: "1.25"
133
154
  prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ~>
137
- - !ruby/object:Gem::Version
138
- version: '1.25'
155
+ type: :development
156
+ requirement: *id009
139
157
  description:
140
158
  email: cloud@engineyard.com
141
- executables:
159
+ executables:
142
160
  - engineyard-serverside
143
161
  extensions: []
162
+
144
163
  extra_rdoc_files: []
145
- files:
164
+
165
+ files:
146
166
  - bin/engineyard-serverside
147
167
  - lib/engineyard-serverside/about.rb
148
168
  - lib/engineyard-serverside/cli.rb
@@ -409,30 +429,41 @@ files:
409
429
  - spec/support/integration.rb
410
430
  - spec/support/source_doubles.rb
411
431
  homepage: http://github.com/engineyard/engineyard-serverside
412
- licenses:
432
+ licenses:
413
433
  - MIT
414
- metadata: {}
415
434
  post_install_message:
416
435
  rdoc_options: []
417
- require_paths:
436
+
437
+ require_paths:
418
438
  - lib
419
- required_ruby_version: !ruby/object:Gem::Requirement
420
- requirements:
421
- - - ! '>='
422
- - !ruby/object:Gem::Version
423
- version: '0'
424
- required_rubygems_version: !ruby/object:Gem::Requirement
425
- requirements:
426
- - - ! '>='
427
- - !ruby/object:Gem::Version
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
428
458
  version: 1.3.6
429
459
  requirements: []
460
+
430
461
  rubyforge_project:
431
- rubygems_version: 2.1.10
462
+ rubygems_version: 1.8.25
432
463
  signing_key:
433
- specification_version: 4
464
+ specification_version: 3
434
465
  summary: A gem that deploys ruby applications on EY Cloud instances
435
- test_files:
466
+ test_files:
436
467
  - spec/archive_deploy_spec.rb
437
468
  - spec/basic_deploy_spec.rb
438
469
  - spec/bundler_deploy_spec.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YjZmMjM2NmI3Y2U2MjM2MjdhOGI4MGE3OWQ5YTk1NmZiYzQwNjA3Zg==
5
- data.tar.gz: !binary |-
6
- ZTJjZjRkZGY1NmYzZjdlNGRhNzVkZDRkZDk0MGQ3YWI4YzllZGY3ZQ==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- ZjlmZWRiNjVhN2Q3NDNmNDNlZGY1OWNhNjY4MTI1MDdhN2QzZTA5NjJjMjUw
10
- MDFjYjk0MzZlZWVkM2Q2ZjBmNzQ4NzVmMDMxY2ZhYzAzN2JmNTYwYTBjOTM5
11
- ODNmMzA3YmQxODU0ZjJlNTc2MTA4N2FjZThhNjUxMGY0YTczZjM=
12
- data.tar.gz: !binary |-
13
- MTViNGYwNTRlZjI2NjQ4ZDIwOTg1ZWVjMTkwYzg4MDA1MDM2MGQzN2MyOGNi
14
- MzIxNTQ3NDllMTQ4MDFjZjQxMWU4ZTBmZDU1M2VjMWIyNDJmMTg1NjMzMWQ4
15
- ZDRmYjk5ZjQwMDQ0MTIyOGYwNjgzMTdlMjFlNGFmMGViZGM0ZTI=