engineyard-serverside 2.3.7 → 2.3.9
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.
- data/lib/engineyard-serverside/configuration.rb +2 -0
- data/lib/engineyard-serverside/dependency_manager/composer.rb +1 -1
- data/lib/engineyard-serverside/deploy.rb +2 -0
- data/lib/engineyard-serverside/deploy_hook.rb +7 -1
- data/lib/engineyard-serverside/server.rb +4 -2
- data/lib/engineyard-serverside/source/git.rb +26 -10
- data/lib/engineyard-serverside/version.rb +1 -1
- data/spec/configuration_spec.rb +11 -3
- data/spec/multi_dependency_manager_spec.rb +1 -1
- data/spec/php_deploy_spec.rb +11 -9
- data/spec/rollback_spec.rb +41 -47
- data/spec/support/integration.rb +1 -1
- metadata +154 -123
- checksums.yaml +0 -15
@@ -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 =
|
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 #{
|
51
|
-
run_and_success?("git reset --hard #{
|
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
|
-
#
|
59
|
-
#
|
60
|
-
#
|
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
|
-
#
|
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
|
-
|
73
|
-
"#{git} fetch --force --prune --update-head-ok #{
|
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
|
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
|
data/spec/configuration_spec.rb
CHANGED
@@ -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
|
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
|
data/spec/php_deploy_spec.rb
CHANGED
@@ -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 "
|
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
|
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 "
|
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
|
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
|
-
|
69
|
+
unless $COMPOSER_INSTALLED
|
70
|
+
context "without composer available" do
|
70
71
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
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
|
data/spec/rollback_spec.rb
CHANGED
@@ -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
|
-
|
7
|
-
|
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
|
-
|
36
|
-
@
|
37
|
-
|
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
|
-
|
68
|
-
|
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
|
data/spec/support/integration.rb
CHANGED
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
|
-
|
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
|
-
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2014-03-26 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
14
21
|
name: rspec
|
15
|
-
|
16
|
-
|
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
|
-
|
51
|
-
|
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
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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
|
-
|
79
|
-
|
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
|
-
|
86
|
-
|
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
|
-
|
93
|
-
|
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
|
-
|
100
|
-
|
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
|
-
|
121
|
-
|
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
|
-
|
128
|
-
|
144
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
129
147
|
- - ~>
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
|
132
|
-
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 61
|
150
|
+
segments:
|
151
|
+
- 1
|
152
|
+
- 25
|
153
|
+
version: "1.25"
|
133
154
|
prerelease: false
|
134
|
-
|
135
|
-
|
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
|
-
|
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
|
-
|
436
|
+
|
437
|
+
require_paths:
|
418
438
|
- lib
|
419
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
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:
|
462
|
+
rubygems_version: 1.8.25
|
432
463
|
signing_key:
|
433
|
-
specification_version:
|
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=
|