engineyard-serverside 2.7.0.pre → 2.7.8pre2
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/engineyard-serverside +1 -1
- data/lib/engineyard-serverside/about.rb +8 -7
- data/lib/engineyard-serverside/cli.rb +225 -4
- data/lib/engineyard-serverside/cli_helpers.rb +53 -0
- data/lib/engineyard-serverside/configuration.rb +0 -1
- data/lib/engineyard-serverside/dependency_manager/bundler.rb +18 -46
- data/lib/engineyard-serverside/dependency_manager/npm.rb +1 -12
- data/lib/engineyard-serverside/deploy.rb +45 -7
- data/lib/engineyard-serverside/deploy_hook.rb +83 -20
- data/lib/engineyard-serverside/maintenance.rb +9 -1
- data/lib/engineyard-serverside/paths.rb +0 -11
- data/lib/engineyard-serverside/rails_assets.rb +1 -2
- data/lib/engineyard-serverside/version.rb +1 -1
- data/spec/archive_deploy_spec.rb +53 -0
- data/spec/basic_deploy_spec.rb +26 -0
- data/spec/bundler_deploy_spec.rb +139 -0
- data/spec/configuration_spec.rb +205 -0
- data/spec/custom_deploy_spec.rb +128 -0
- data/spec/deploy_hook_spec.rb +362 -0
- data/spec/deprecation_spec.rb +23 -0
- data/spec/ey_yml_customized_deploy_spec.rb +99 -0
- data/spec/fixtures/gitrepo.tar.gz +0 -0
- data/{lib/engineyard-serverside/callbacks/hooks.rb → spec/fixtures/gitrepo/bar} +0 -0
- data/spec/fixtures/gitrepo/foo +0 -0
- data/spec/fixtures/invalid_hook.rb +1 -0
- data/spec/fixtures/lockfiles/0.9-no-bundler +111 -0
- data/spec/fixtures/lockfiles/0.9-with-bundler +117 -0
- data/spec/fixtures/lockfiles/1.0-no-bundler +54 -0
- data/spec/fixtures/lockfiles/1.0.0.rc.1-with-bundler +162 -0
- data/spec/fixtures/lockfiles/1.0.18-do_mysql +88 -0
- data/spec/fixtures/lockfiles/1.0.18-do_postgres +79 -0
- data/spec/fixtures/lockfiles/1.0.18-mysql +43 -0
- data/spec/fixtures/lockfiles/1.0.18-mysql2 +43 -0
- data/spec/fixtures/lockfiles/1.0.18-pg +43 -0
- data/spec/fixtures/lockfiles/1.0.6-no-bundler +51 -0
- data/spec/fixtures/lockfiles/1.0.6-with-any-bundler +52 -0
- data/spec/fixtures/lockfiles/1.0.6-with-bundler +52 -0
- data/spec/fixtures/lockfiles/1.3.1-rails-3.2.13 +112 -0
- data/spec/fixtures/lockfiles/not-a-lockfile +1 -0
- data/spec/fixtures/repos/assets_detected/Gemfile +5 -0
- data/spec/fixtures/repos/assets_detected/Gemfile.lock +88 -0
- data/spec/fixtures/repos/assets_detected/README +1 -0
- data/spec/fixtures/repos/assets_detected/Rakefile +5 -0
- data/spec/fixtures/repos/assets_detected/app/assets/empty +0 -0
- data/spec/fixtures/repos/assets_detected/config/application.rb +5 -0
- data/spec/fixtures/repos/assets_detected/config/ey.yml +3 -0
- data/spec/fixtures/repos/assets_disabled/Gemfile +5 -0
- data/spec/fixtures/repos/assets_disabled/Gemfile.lock +88 -0
- data/spec/fixtures/repos/assets_disabled/README +1 -0
- data/spec/fixtures/repos/assets_disabled/Rakefile +6 -0
- data/spec/fixtures/repos/assets_disabled/app/assets/empty +0 -0
- data/spec/fixtures/repos/assets_disabled/config/application.rb +5 -0
- data/spec/fixtures/repos/assets_disabled/config/ey.yml +3 -0
- data/spec/fixtures/repos/assets_disabled_in_ey_yml/Gemfile +5 -0
- data/spec/fixtures/repos/assets_disabled_in_ey_yml/Gemfile.lock +88 -0
- data/spec/fixtures/repos/assets_disabled_in_ey_yml/README +1 -0
- data/spec/fixtures/repos/assets_disabled_in_ey_yml/Rakefile +6 -0
- data/spec/fixtures/repos/assets_disabled_in_ey_yml/app/assets/empty +0 -0
- data/spec/fixtures/repos/assets_disabled_in_ey_yml/config/application.rb +5 -0
- data/spec/fixtures/repos/assets_disabled_in_ey_yml/config/ey.yml +5 -0
- data/spec/fixtures/repos/assets_disabled_utf8/Gemfile +5 -0
- data/spec/fixtures/repos/assets_disabled_utf8/Gemfile.lock +88 -0
- data/spec/fixtures/repos/assets_disabled_utf8/README +3 -0
- data/spec/fixtures/repos/assets_disabled_utf8/Rakefile +5 -0
- data/spec/fixtures/repos/assets_disabled_utf8/app/assets/empty +0 -0
- data/spec/fixtures/repos/assets_disabled_utf8/config/application.rb +7 -0
- data/spec/fixtures/repos/assets_disabled_utf8/config/ey.yml +3 -0
- data/spec/fixtures/repos/assets_enabled_all/Gemfile +5 -0
- data/spec/fixtures/repos/assets_enabled_all/Gemfile.lock +88 -0
- data/spec/fixtures/repos/assets_enabled_all/README +1 -0
- data/spec/fixtures/repos/assets_enabled_all/app/assets/empty +0 -0
- data/spec/fixtures/repos/assets_enabled_all/config/application.rb +5 -0
- data/spec/fixtures/repos/assets_enabled_all/config/ey.yml +6 -0
- data/spec/fixtures/repos/assets_enabled_all/script/assets +5 -0
- data/spec/fixtures/repos/assets_enabled_all/tmp/obstruction +1 -0
- data/spec/fixtures/repos/assets_enabled_in_ey_yml/Gemfile +3 -0
- data/spec/fixtures/repos/assets_enabled_in_ey_yml/Gemfile.lock +10 -0
- data/spec/fixtures/repos/assets_enabled_in_ey_yml/README +1 -0
- data/spec/fixtures/repos/assets_enabled_in_ey_yml/Rakefile +8 -0
- data/spec/fixtures/repos/assets_enabled_in_ey_yml/config/ey.yml +4 -0
- data/spec/fixtures/repos/assets_enabled_util_only/Gemfile +5 -0
- data/spec/fixtures/repos/assets_enabled_util_only/Gemfile.lock +88 -0
- data/spec/fixtures/repos/assets_enabled_util_only/README +1 -0
- data/spec/fixtures/repos/assets_enabled_util_only/Rakefile +6 -0
- data/spec/fixtures/repos/assets_enabled_util_only/app/assets/empty +0 -0
- data/spec/fixtures/repos/assets_enabled_util_only/config/application.rb +5 -0
- data/spec/fixtures/repos/assets_enabled_util_only/config/ey.yml +6 -0
- data/spec/fixtures/repos/assets_in_hook/Gemfile +5 -0
- data/spec/fixtures/repos/assets_in_hook/Gemfile.lock +88 -0
- data/spec/fixtures/repos/assets_in_hook/README +2 -0
- data/spec/fixtures/repos/assets_in_hook/Rakefile +5 -0
- data/spec/fixtures/repos/assets_in_hook/app/assets/empty +0 -0
- data/spec/fixtures/repos/assets_in_hook/config/application.rb +5 -0
- data/spec/fixtures/repos/assets_in_hook/config/ey.yml +3 -0
- data/spec/fixtures/repos/assets_in_hook/deploy/before_compile_assets.rb +2 -0
- data/spec/fixtures/repos/bundle_fails/Gemfile +1 -0
- data/spec/fixtures/repos/bundle_fails/README +1 -0
- data/spec/fixtures/repos/bundle_fails/deploy/after_bundle.rb +1 -0
- data/spec/fixtures/repos/bundler_disabled/Gemfile +4 -0
- data/spec/fixtures/repos/bundler_disabled/Gemfile.lock +12 -0
- data/spec/fixtures/repos/bundler_disabled/README +1 -0
- data/spec/fixtures/repos/bundler_disabled/config/ey.yml +2 -0
- data/spec/fixtures/repos/bundler_disabled/deploy/after_bundle.rb +1 -0
- data/spec/fixtures/repos/bundler_disabled/deploy/before_bundle.rb +1 -0
- data/spec/fixtures/repos/default/Gemfile +4 -0
- data/spec/fixtures/repos/default/Gemfile.lock +12 -0
- data/spec/fixtures/repos/default/README +5 -0
- data/spec/fixtures/repos/default/ey.yml +3 -0
- data/spec/fixtures/repos/executable_hooks/README +1 -0
- data/spec/fixtures/repos/executable_hooks/deploy/before_restart +72 -0
- data/spec/fixtures/repos/executable_hooks_not_executable/README +3 -0
- data/spec/fixtures/repos/executable_hooks_not_executable/deploy/before_restart +3 -0
- data/spec/fixtures/repos/ey_yml/Gemfile +4 -0
- data/spec/fixtures/repos/ey_yml/Gemfile.lock +12 -0
- data/spec/fixtures/repos/ey_yml/README +1 -0
- data/spec/fixtures/repos/ey_yml/config/ey.yml +18 -0
- data/spec/fixtures/repos/ey_yml/deploy/before_migrate.rb +6 -0
- data/spec/fixtures/repos/ey_yml_alt/Gemfile +4 -0
- data/spec/fixtures/repos/ey_yml_alt/Gemfile.lock +12 -0
- data/spec/fixtures/repos/ey_yml_alt/README +1 -0
- data/spec/fixtures/repos/ey_yml_alt/deploy/before_migrate.rb +6 -0
- data/spec/fixtures/repos/ey_yml_alt/ey.yml +12 -0
- data/spec/fixtures/repos/hook_fails/README +1 -0
- data/spec/fixtures/repos/hook_fails/deploy/before_deploy.rb +1 -0
- data/spec/fixtures/repos/hooks/README +1 -0
- data/spec/fixtures/repos/hooks/deploy/after_bundle.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/after_compile_assets.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/after_deploy.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/after_migrate.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/after_restart.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/after_symlink.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/before_bundle.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/before_compile_assets.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/before_deploy.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/before_migrate.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/before_restart.rb +1 -0
- data/spec/fixtures/repos/hooks/deploy/before_symlink.rb +1 -0
- data/spec/fixtures/repos/multi_dep_manager/README +1 -0
- data/spec/fixtures/repos/multi_dep_manager/composer.json +5 -0
- data/spec/fixtures/repos/multi_dep_manager/composer.lock +462 -0
- data/spec/fixtures/repos/multi_dep_manager/package.json +7 -0
- data/spec/fixtures/repos/multi_dep_manager/public/index.php +4 -0
- data/spec/fixtures/repos/no_ey_config/Gemfile +3 -0
- data/spec/fixtures/repos/no_ey_config/Gemfile.lock +10 -0
- data/spec/fixtures/repos/no_ey_config/README +1 -0
- data/spec/fixtures/repos/no_ey_config/ey.yml +3 -0
- data/spec/fixtures/repos/no_gemfile_lock/Gemfile +4 -0
- data/spec/fixtures/repos/no_gemfile_lock/README +1 -0
- data/spec/fixtures/repos/no_gemfile_lock/ey.yml +3 -0
- data/spec/fixtures/repos/nodejs/README +1 -0
- data/spec/fixtures/repos/nodejs/package.json +7 -0
- data/spec/fixtures/repos/not_bundled/README +1 -0
- data/spec/fixtures/repos/npm_disabled/README +1 -0
- data/spec/fixtures/repos/npm_disabled/config/ey.yml +2 -0
- data/spec/fixtures/repos/npm_disabled/package.json +7 -0
- data/spec/fixtures/repos/php_composer_disabled/README +1 -0
- data/spec/fixtures/repos/php_composer_disabled/composer.json +5 -0
- data/spec/fixtures/repos/php_composer_disabled/composer.lock +462 -0
- data/spec/fixtures/repos/php_composer_disabled/config/ey.yml +2 -0
- data/spec/fixtures/repos/php_composer_disabled/public/index.php +4 -0
- data/spec/fixtures/repos/php_composer_lock/README +1 -0
- data/spec/fixtures/repos/php_composer_lock/composer.json +5 -0
- data/spec/fixtures/repos/php_composer_lock/composer.lock +462 -0
- data/spec/fixtures/repos/php_composer_lock/public/index.php +4 -0
- data/spec/fixtures/repos/php_no_composer_lock/README +1 -0
- data/spec/fixtures/repos/php_no_composer_lock/composer.json +21 -0
- data/spec/fixtures/repos/php_no_composer_lock/public/index.php +4 -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/fixtures/repos/sqlite3/Gemfile +4 -0
- data/spec/fixtures/repos/sqlite3/Gemfile.lock +89 -0
- data/spec/fixtures/repos/sqlite3/README +1 -0
- data/spec/fixtures/retwisj.war +0 -0
- data/spec/fixtures/valid_hook.rb +1 -0
- data/spec/git_strategy_spec.rb +34 -0
- data/spec/lockfile_parser_spec.rb +122 -0
- data/spec/maintenance_spec.rb +44 -0
- data/spec/multi_dependency_manager_spec.rb +25 -0
- data/spec/nodejs_deploy_spec.rb +30 -0
- data/spec/php_deploy_spec.rb +81 -0
- data/spec/platform_configure_spec.rb +61 -0
- data/spec/rails31_deploy_spec.rb +164 -0
- data/spec/restart_spec.rb +43 -0
- data/spec/rollback_spec.rb +87 -0
- data/spec/server_spec.rb +70 -0
- data/spec/services_deploy_spec.rb +153 -0
- data/spec/shell_spec.rb +57 -0
- data/spec/source/archive_spec.rb +33 -0
- data/spec/source/git_spec.rb +44 -0
- data/spec/spec_helper.rb +355 -0
- data/spec/sqlite3_deploy_spec.rb +38 -0
- data/spec/support/integration.rb +103 -0
- data/spec/support/source_doubles.rb +28 -0
- data/spec/support/timecop.rb +5 -0
- data/spec/symlink_spec.rb +15 -0
- metadata +522 -184
- data/lib/engineyard-serverside/callbacks.rb +0 -11
- data/lib/engineyard-serverside/callbacks/collection.rb +0 -17
- data/lib/engineyard-serverside/callbacks/collection/base.rb +0 -94
- data/lib/engineyard-serverside/callbacks/collection/combined.rb +0 -45
- data/lib/engineyard-serverside/callbacks/collection/deploy_hooks.rb +0 -21
- data/lib/engineyard-serverside/callbacks/collection/service_hooks.rb +0 -17
- data/lib/engineyard-serverside/callbacks/collection/service_hooks/collection.rb +0 -24
- data/lib/engineyard-serverside/callbacks/collection/service_hooks/combined.rb +0 -40
- data/lib/engineyard-serverside/callbacks/distributor.rb +0 -23
- data/lib/engineyard-serverside/callbacks/distributor/base.rb +0 -38
- data/lib/engineyard-serverside/callbacks/distributor/executable.rb +0 -19
- data/lib/engineyard-serverside/callbacks/distributor/executable/runnable.rb +0 -41
- data/lib/engineyard-serverside/callbacks/distributor/executable/unrunnable.rb +0 -19
- data/lib/engineyard-serverside/callbacks/distributor/ruby.rb +0 -59
- data/lib/engineyard-serverside/callbacks/distributor/ruby/distributor.rb +0 -57
- data/lib/engineyard-serverside/callbacks/hooks/app.rb +0 -17
- data/lib/engineyard-serverside/callbacks/hooks/base.rb +0 -39
- data/lib/engineyard-serverside/callbacks/hooks/service.rb +0 -24
- data/lib/engineyard-serverside/callbacks/service_hook.rb +0 -20
- data/lib/engineyard-serverside/cli/app.rb +0 -136
- data/lib/engineyard-serverside/cli/helpers.rb +0 -58
- data/lib/engineyard-serverside/cli/server_hash_extractor.rb +0 -49
- data/lib/engineyard-serverside/cli/workflows.rb +0 -45
- data/lib/engineyard-serverside/cli/workflows/base.rb +0 -78
- data/lib/engineyard-serverside/cli/workflows/calling_deploy_hooks.rb +0 -31
- data/lib/engineyard-serverside/cli/workflows/deploying_applications.rb +0 -28
- data/lib/engineyard-serverside/cli/workflows/disabling_maintenance.rb +0 -29
- data/lib/engineyard-serverside/cli/workflows/enabling_maintenance.rb +0 -29
- data/lib/engineyard-serverside/cli/workflows/errors.rb +0 -13
- data/lib/engineyard-serverside/cli/workflows/helpers.rb +0 -21
- data/lib/engineyard-serverside/cli/workflows/integrating_servers.rb +0 -71
- data/lib/engineyard-serverside/cli/workflows/restarting_applications.rb +0 -36
- data/lib/engineyard-serverside/cli/workflows/rolling_back_applications.rb +0 -28
- data/lib/engineyard-serverside/cli/workflows/showing_maintenance_status.rb +0 -28
- data/lib/engineyard-serverside/deploy_hook/callback_context.rb +0 -77
- data/lib/engineyard-serverside/propagator.rb +0 -59
- data/lib/engineyard-serverside/slug.rb +0 -7
- data/lib/engineyard-serverside/slug/distributor.rb +0 -58
- data/lib/engineyard-serverside/slug/enabler.rb +0 -100
- data/lib/engineyard-serverside/slug/failure_handler.rb +0 -24
- data/lib/engineyard-serverside/slug/finalizer.rb +0 -86
- data/lib/engineyard-serverside/slug/generator.rb +0 -29
- data/lib/engineyard-serverside/slug/migrator.rb +0 -41
- data/lib/engineyard-serverside/slug/restarter.rb +0 -103
- data/lib/engineyard-serverside/slug/source.rb +0 -16
- data/lib/engineyard-serverside/slug/source/updater.rb +0 -194
- data/lib/railway.rb +0 -43
- data/lib/result.rb +0 -7
- data/lib/result/base.rb +0 -41
- data/lib/result/dsl.rb +0 -16
- data/lib/result/failure.rb +0 -29
- data/lib/result/success.rb +0 -24
- data/lib/runner.rb +0 -34
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/collection/combined'
|
2
|
-
|
3
|
-
module EY
|
4
|
-
module Serverside
|
5
|
-
module Callbacks
|
6
|
-
|
7
|
-
module Collection
|
8
|
-
attr_reader :app_hooks
|
9
|
-
|
10
|
-
def self.load(paths)
|
11
|
-
Combined.load(paths)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,94 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/distributor'
|
2
|
-
|
3
|
-
module EY
|
4
|
-
module Serverside
|
5
|
-
module Callbacks
|
6
|
-
module Collection
|
7
|
-
|
8
|
-
# A base class for all Callback::Collection classes
|
9
|
-
class Base
|
10
|
-
|
11
|
-
# Load and return a callback collection
|
12
|
-
# @param paths (EY::Serverside::Paths) a paths object
|
13
|
-
def self.load(paths)
|
14
|
-
new(paths)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Create a new collection instance
|
18
|
-
# @params paths (EY::Serverside::Paths) a paths object
|
19
|
-
def initialize(paths)
|
20
|
-
@paths = paths
|
21
|
-
load_hooks
|
22
|
-
end
|
23
|
-
|
24
|
-
# Get all of the hooks in the collection
|
25
|
-
# @return [Array<EY::Serverside::Callbacks::Hooks::Base>]
|
26
|
-
# the hooks tracked by the collection
|
27
|
-
def all
|
28
|
-
hooks
|
29
|
-
end
|
30
|
-
|
31
|
-
# Given a callback name (ie `before_bundle`), get all of the hooks
|
32
|
-
# that match said callback name, favoring ruby-flavored hooks when
|
33
|
-
# both ruby-flavored and executable-flavored hooks are present for a
|
34
|
-
# given context.
|
35
|
-
# @param callback (Symbol) the desired callback name
|
36
|
-
# @return [Array<EY::Serverside::Callbacks::Hooks::Base>]
|
37
|
-
# the tracked hooks for the given callback name
|
38
|
-
def matching(callback)
|
39
|
-
favor(
|
40
|
-
:ruby,
|
41
|
-
all.select {|hook| hook.matches?(callback.to_sym)}
|
42
|
-
)
|
43
|
-
end
|
44
|
-
|
45
|
-
# Given a runner and a callback name, distribute the invocation of
|
46
|
-
# the matching hooks via the runner. Due to the nature of ruby-
|
47
|
-
# flavored hooks, if there is more than one ruby-flavored hook in the
|
48
|
-
# list of hooks that match the desired callback, only one of them
|
49
|
-
# is actually distributed.
|
50
|
-
# @param runner (EY::Serverside::DeployBase) the runner with which to
|
51
|
-
# distribute the matching hooks
|
52
|
-
# @param callback (Symbol) the desired callback name
|
53
|
-
def distribute(runner, callback)
|
54
|
-
Distributor.distribute(
|
55
|
-
runner,
|
56
|
-
minimize_ruby(
|
57
|
-
matching(callback)
|
58
|
-
)
|
59
|
-
)
|
60
|
-
end
|
61
|
-
|
62
|
-
private
|
63
|
-
def favor(flavor, hooks)
|
64
|
-
(
|
65
|
-
hooks.select {|hook| hook.flavor == flavor} +
|
66
|
-
hooks.reject {|hook| hook.flavor == flavor}
|
67
|
-
).first(1)
|
68
|
-
end
|
69
|
-
|
70
|
-
def minimize_ruby(hooks)
|
71
|
-
first_ruby = hooks.select {|hook| hook.flavor == :ruby}.first
|
72
|
-
|
73
|
-
return hooks unless first_ruby
|
74
|
-
|
75
|
-
([first_ruby] + hooks.select {|hook| hook.flavor != :ruby}).flatten
|
76
|
-
end
|
77
|
-
|
78
|
-
def load_hooks
|
79
|
-
raise "Unimplemented"
|
80
|
-
end
|
81
|
-
|
82
|
-
def paths
|
83
|
-
@paths
|
84
|
-
end
|
85
|
-
|
86
|
-
def hooks
|
87
|
-
@hooks ||= []
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/collection/base'
|
2
|
-
require 'engineyard-serverside/callbacks/collection/deploy_hooks'
|
3
|
-
require 'engineyard-serverside/callbacks/collection/service_hooks'
|
4
|
-
|
5
|
-
module EY
|
6
|
-
module Serverside
|
7
|
-
module Callbacks
|
8
|
-
module Collection
|
9
|
-
|
10
|
-
class Combined < Base
|
11
|
-
def all
|
12
|
-
collections.
|
13
|
-
map {|collection| collection.all}.
|
14
|
-
flatten
|
15
|
-
end
|
16
|
-
|
17
|
-
def matching(callback)
|
18
|
-
collections.
|
19
|
-
map {|collection| collection.matching(callback)}.
|
20
|
-
flatten
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
def load_hooks
|
25
|
-
@service_hooks = ServiceHooks.load(paths)
|
26
|
-
@app_hooks = DeployHooks.load(paths)
|
27
|
-
end
|
28
|
-
|
29
|
-
def app_hooks
|
30
|
-
@app_hooks
|
31
|
-
end
|
32
|
-
|
33
|
-
def service_hooks
|
34
|
-
@service_hooks
|
35
|
-
end
|
36
|
-
|
37
|
-
def collections
|
38
|
-
[service_hooks, app_hooks]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/collection/base'
|
2
|
-
require 'engineyard-serverside/callbacks/hooks/app'
|
3
|
-
|
4
|
-
module EY
|
5
|
-
module Serverside
|
6
|
-
module Callbacks
|
7
|
-
module Collection
|
8
|
-
|
9
|
-
class DeployHooks < Base
|
10
|
-
private
|
11
|
-
def load_hooks
|
12
|
-
Dir["#{paths.deploy_hooks}/*"].each do |hook_path|
|
13
|
-
hooks.push(Hooks::App.new(hook_path))
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/collection/service_hooks/combined'
|
2
|
-
|
3
|
-
module EY
|
4
|
-
module Serverside
|
5
|
-
module Callbacks
|
6
|
-
module Collection
|
7
|
-
|
8
|
-
module ServiceHooks
|
9
|
-
def self.load(paths)
|
10
|
-
Combined.load(paths)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/collection/base'
|
2
|
-
require 'engineyard-serverside/callbacks/hooks/service'
|
3
|
-
|
4
|
-
module EY
|
5
|
-
module Serverside
|
6
|
-
module Callbacks
|
7
|
-
module Collection
|
8
|
-
module ServiceHooks
|
9
|
-
|
10
|
-
class Collection < EY::Serverside::Callbacks::Collection::Base
|
11
|
-
|
12
|
-
private
|
13
|
-
def load_hooks
|
14
|
-
Dir["#{paths}/*"].each do |hook_path|
|
15
|
-
hooks.push(Hooks::Service.new(hook_path))
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/collection/base'
|
2
|
-
require 'engineyard-serverside/callbacks/collection/service_hooks/collection'
|
3
|
-
|
4
|
-
module EY
|
5
|
-
module Serverside
|
6
|
-
module Callbacks
|
7
|
-
module Collection
|
8
|
-
module ServiceHooks
|
9
|
-
|
10
|
-
class Combined < EY::Serverside::Callbacks::Collection::Base
|
11
|
-
|
12
|
-
def all
|
13
|
-
collections.
|
14
|
-
map {|collection| collection.all}.
|
15
|
-
flatten
|
16
|
-
end
|
17
|
-
|
18
|
-
def matching(callback)
|
19
|
-
collections.
|
20
|
-
map {|collection| collection.matching(callback)}.
|
21
|
-
flatten
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
def load_hooks
|
26
|
-
Dir["#{paths.shared_hooks}/*"].each do |service_path|
|
27
|
-
collections.push(ServiceHooks::Collection.load(service_path))
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def collections
|
32
|
-
@collections ||= []
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/distributor/ruby'
|
2
|
-
require 'engineyard-serverside/callbacks/distributor/executable'
|
3
|
-
|
4
|
-
module EY
|
5
|
-
module Serverside
|
6
|
-
module Callbacks
|
7
|
-
|
8
|
-
module Distributor
|
9
|
-
FLAVORS = {
|
10
|
-
:ruby => Ruby,
|
11
|
-
:executable => Executable,
|
12
|
-
}
|
13
|
-
|
14
|
-
def self.distribute(runner, hooks)
|
15
|
-
hooks.each do |hook|
|
16
|
-
FLAVORS[hook.flavor].distribute(runner, hook)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
module EY
|
2
|
-
module Serverside
|
3
|
-
module Callbacks
|
4
|
-
module Distributor
|
5
|
-
|
6
|
-
class Base
|
7
|
-
attr_reader :runner, :hook
|
8
|
-
|
9
|
-
def self.distribute(runner, hook)
|
10
|
-
new(runner, hook).distribute
|
11
|
-
end
|
12
|
-
|
13
|
-
def initialize(runner, hook)
|
14
|
-
@runner = runner
|
15
|
-
@hook = hook
|
16
|
-
end
|
17
|
-
|
18
|
-
def distribute
|
19
|
-
raise 'Unimplemented Hook Distributor!'
|
20
|
-
end
|
21
|
-
|
22
|
-
def config
|
23
|
-
runner.config
|
24
|
-
end
|
25
|
-
|
26
|
-
def shell
|
27
|
-
runner.shell
|
28
|
-
end
|
29
|
-
|
30
|
-
def paths
|
31
|
-
runner.paths
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/distributor/executable/runnable'
|
2
|
-
require 'engineyard-serverside/callbacks/distributor/executable/unrunnable'
|
3
|
-
|
4
|
-
module EY
|
5
|
-
module Serverside
|
6
|
-
module Callbacks
|
7
|
-
module Distributor
|
8
|
-
|
9
|
-
module Executable
|
10
|
-
def self.distribute(runner, hook)
|
11
|
-
(hook.path.executable? ? Runnable : Unrunnable).
|
12
|
-
distribute(runner, hook)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/distributor/base'
|
2
|
-
|
3
|
-
module EY
|
4
|
-
module Serverside
|
5
|
-
module Callbacks
|
6
|
-
module Distributor
|
7
|
-
module Executable
|
8
|
-
|
9
|
-
class Runnable < Base
|
10
|
-
def distribute
|
11
|
-
shell.status "Running deploy hook: #{hook}"
|
12
|
-
|
13
|
-
runner.run [About.hook_executor, hook.callback_name].join(' ') do |server, cmd|
|
14
|
-
cmd = hook_env_vars(server).
|
15
|
-
reject {|name,value| value.nil?}.
|
16
|
-
map {|name,value| "#{name}=#{Escape.shell_command([value])}"}.
|
17
|
-
join(' ') + ' ' + config.framework_envs + ' ' + cmd
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
def hook_env_vars(server)
|
23
|
-
{
|
24
|
-
'EY_DEPLOY_ACCOUNT_NAME' => config.account_name,
|
25
|
-
'EY_DEPLOY_APP' => config.app,
|
26
|
-
'EY_DEPLOY_CONFIG' => config.to_json,
|
27
|
-
'EY_DEPLOY_CURRENT_ROLES' => server.roles.to_a.join(' '),
|
28
|
-
'EY_DEPLOY_CURRENT_NAME' => server.name ? server.name.to_s : nil,
|
29
|
-
'EY_DEPLOY_ENVIRONMENT_NAME' => config.environment_name,
|
30
|
-
'EY_DEPLOY_FRAMEWORK_ENV' => config.framework_env.to_s,
|
31
|
-
'EY_DEPLOY_RELEASE_PATH' => paths.active_release.to_s,
|
32
|
-
'EY_DEPLOY_VERBOSE' => (config.verbose ? '1' : '0'),
|
33
|
-
}
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/distributor/base'
|
2
|
-
|
3
|
-
module EY
|
4
|
-
module Serverside
|
5
|
-
module Callbacks
|
6
|
-
module Distributor
|
7
|
-
module Executable
|
8
|
-
|
9
|
-
class Unrunnable < Base
|
10
|
-
def distribute
|
11
|
-
shell.warning "Skipping possible deploy hook #{hook} because it is not executable."
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'engineyard-serverside/callbacks/distributor/base'
|
2
|
-
|
3
|
-
module EY
|
4
|
-
module Serverside
|
5
|
-
module Callbacks
|
6
|
-
module Distributor
|
7
|
-
|
8
|
-
class Ruby < Base
|
9
|
-
def self.distribute(runner, hook)
|
10
|
-
new(runner, hook).distribute
|
11
|
-
end
|
12
|
-
|
13
|
-
def distribute
|
14
|
-
shell.status "Running deploy hook: #{hook}.rb"
|
15
|
-
|
16
|
-
runner.run escaped_command(hook) do |server, cmd|
|
17
|
-
instance_args = [
|
18
|
-
'--current-roles', server.roles.to_a.join(' ')
|
19
|
-
]
|
20
|
-
|
21
|
-
if server.name
|
22
|
-
instance_args.push('--current-name')
|
23
|
-
instance_args.push(server.name.to_s)
|
24
|
-
end
|
25
|
-
|
26
|
-
instance_args.push('--config')
|
27
|
-
instance_args.push(config.to_json)
|
28
|
-
|
29
|
-
cmd << " " << Escape.shell_command(instance_args)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
def escaped_command(hook)
|
35
|
-
Escape.shell_command(command_for(hook.callback_name))
|
36
|
-
end
|
37
|
-
|
38
|
-
def command_for(hook_name)
|
39
|
-
cmd = [
|
40
|
-
About.binary,
|
41
|
-
'hook', hook_name.to_s,
|
42
|
-
'--app', config.app,
|
43
|
-
'--environment-name', config.environment_name,
|
44
|
-
'--account-name', config.account_name,
|
45
|
-
'--release-path', paths.active_release.to_s,
|
46
|
-
'--framework-env', config.framework_env.to_s
|
47
|
-
]
|
48
|
-
|
49
|
-
cmd.push('--verbose') if config.verbose
|
50
|
-
|
51
|
-
cmd
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|