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
@@ -0,0 +1 @@
|
|
1
|
+
Simple PHP Composer app.
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"repositories": [
|
3
|
+
{
|
4
|
+
"type": "vcs",
|
5
|
+
"url": "https://github.com/zendframework/ZendDeveloperTools"
|
6
|
+
},
|
7
|
+
{
|
8
|
+
"type": "vcs",
|
9
|
+
"url": "https://github.com/dshafik/roleuserbridge"
|
10
|
+
}
|
11
|
+
],
|
12
|
+
"require": {
|
13
|
+
"php": ">=5.4.0",
|
14
|
+
"zendframework/zendframework": "2.1.*",
|
15
|
+
"bjyoungblood/bjy-authorize": "1.2.*",
|
16
|
+
"zf-commons/zfc-user": "0.1.*",
|
17
|
+
"zendframework/zend-developer-tools": "dev-master",
|
18
|
+
"bjyoungblood/bjy-profiler": "dev-master",
|
19
|
+
"darkmatus/roleuserbridge": "dev-master"
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
GEM
|
2
|
+
remote: https://rubygems.org/
|
3
|
+
specs:
|
4
|
+
actionmailer (3.1.3)
|
5
|
+
actionpack (= 3.1.3)
|
6
|
+
mail (~> 2.3.0)
|
7
|
+
actionpack (3.1.3)
|
8
|
+
activemodel (= 3.1.3)
|
9
|
+
activesupport (= 3.1.3)
|
10
|
+
builder (~> 3.0.0)
|
11
|
+
erubis (~> 2.7.0)
|
12
|
+
i18n (~> 0.6)
|
13
|
+
rack (~> 1.3.5)
|
14
|
+
rack-cache (~> 1.1)
|
15
|
+
rack-mount (~> 0.8.2)
|
16
|
+
rack-test (~> 0.6.1)
|
17
|
+
sprockets (~> 2.0.3)
|
18
|
+
activemodel (3.1.3)
|
19
|
+
activesupport (= 3.1.3)
|
20
|
+
builder (~> 3.0.0)
|
21
|
+
i18n (~> 0.6)
|
22
|
+
activerecord (3.1.3)
|
23
|
+
activemodel (= 3.1.3)
|
24
|
+
activesupport (= 3.1.3)
|
25
|
+
arel (~> 2.2.1)
|
26
|
+
tzinfo (~> 0.3.29)
|
27
|
+
activeresource (3.1.3)
|
28
|
+
activemodel (= 3.1.3)
|
29
|
+
activesupport (= 3.1.3)
|
30
|
+
activesupport (3.1.3)
|
31
|
+
multi_json (~> 1.0)
|
32
|
+
arel (2.2.1)
|
33
|
+
builder (3.0.0)
|
34
|
+
erubis (2.7.0)
|
35
|
+
hike (1.2.1)
|
36
|
+
i18n (0.6.0)
|
37
|
+
json (1.6.5)
|
38
|
+
mail (2.3.0)
|
39
|
+
i18n (>= 0.4.0)
|
40
|
+
mime-types (~> 1.16)
|
41
|
+
treetop (~> 1.4.8)
|
42
|
+
mime-types (1.17.2)
|
43
|
+
multi_json (1.0.4)
|
44
|
+
polyglot (0.3.3)
|
45
|
+
rack (1.3.6)
|
46
|
+
rack-cache (1.1)
|
47
|
+
rack (>= 0.4)
|
48
|
+
rack-mount (0.8.3)
|
49
|
+
rack (>= 1.0.0)
|
50
|
+
rack-ssl (1.3.2)
|
51
|
+
rack
|
52
|
+
rack-test (0.6.1)
|
53
|
+
rack (>= 1.0)
|
54
|
+
rails (3.1.3)
|
55
|
+
actionmailer (= 3.1.3)
|
56
|
+
actionpack (= 3.1.3)
|
57
|
+
activerecord (= 3.1.3)
|
58
|
+
activeresource (= 3.1.3)
|
59
|
+
activesupport (= 3.1.3)
|
60
|
+
bundler (~> 1.0)
|
61
|
+
railties (= 3.1.3)
|
62
|
+
railties (3.1.3)
|
63
|
+
actionpack (= 3.1.3)
|
64
|
+
activesupport (= 3.1.3)
|
65
|
+
rack-ssl (~> 1.3.2)
|
66
|
+
rake (>= 0.8.7)
|
67
|
+
rdoc (~> 3.4)
|
68
|
+
thor (~> 0.14.6)
|
69
|
+
rake (0.9.2.2)
|
70
|
+
rdoc (3.12)
|
71
|
+
json (~> 1.4)
|
72
|
+
sprockets (2.0.3)
|
73
|
+
hike (~> 1.2)
|
74
|
+
rack (~> 1.0)
|
75
|
+
tilt (~> 1.1, != 1.3.0)
|
76
|
+
sqlite3 (1.3.5)
|
77
|
+
thor (0.14.6)
|
78
|
+
tilt (1.3.3)
|
79
|
+
treetop (1.4.10)
|
80
|
+
polyglot
|
81
|
+
polyglot (>= 0.3.1)
|
82
|
+
tzinfo (0.3.31)
|
83
|
+
|
84
|
+
PLATFORMS
|
85
|
+
ruby
|
86
|
+
|
87
|
+
DEPENDENCIES
|
88
|
+
rails (= 3.1.3)
|
89
|
+
sqlite3
|
@@ -0,0 +1 @@
|
|
1
|
+
This repo uses sqlite3 gem instead of the usual database adapters.
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
run("true")
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class EY::Serverside::Source::Git
|
4
|
+
def fetch_command
|
5
|
+
"mkdir -p #{source_cache} && tar xzf #{FIXTURES_DIR.join('gitrepo.tar.gz')} --strip-components 1 -C #{source_cache}"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
describe EY::Serverside::Source::Git do
|
10
|
+
before do
|
11
|
+
@source_cache = tmpdir.join("gitrepo-#{Time.now.utc.strftime("%Y%m%d%H%M%S")}-#{$$}")
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
it "#update_repository_cache returns true for branches that exist" do
|
16
|
+
git = EY::Serverside::Source::Git.new(
|
17
|
+
test_shell,
|
18
|
+
:uri => FIXTURES_DIR.join('repos','default'),
|
19
|
+
:repository_cache => @source_cache,
|
20
|
+
:ref => "somebranch"
|
21
|
+
)
|
22
|
+
git.update_repository_cache
|
23
|
+
end
|
24
|
+
|
25
|
+
it "#update_repository_cache returns false for branches that do not exist" do
|
26
|
+
git = EY::Serverside::Source::Git.new(
|
27
|
+
test_shell,
|
28
|
+
:uri => FIXTURES_DIR.join('repos','default'),
|
29
|
+
:repository_cache => @source_cache,
|
30
|
+
:ref => "notabranch"
|
31
|
+
)
|
32
|
+
expect { git.update_repository_cache }.to raise_error
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "the bundler version retrieved from the lockfile" do
|
4
|
+
def load_lockfile(file)
|
5
|
+
File.read(File.expand_path("../fixtures/lockfiles/#{file}", __FILE__))
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_parser(file)
|
9
|
+
EY::Serverside::DependencyManager::Bundler::Lockfile.new(load_lockfile(file))
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_version(file)
|
13
|
+
get_parser(file).bundler_version
|
14
|
+
end
|
15
|
+
|
16
|
+
it "raises an error with pre 0.9 bundler lockfiles" do
|
17
|
+
expect { get_version('0.9-no-bundler') }.to raise_error(RuntimeError, /Malformed or pre bundler-1.0.0 Gemfile.lock/)
|
18
|
+
expect { get_version('0.9-with-bundler') }.to raise_error(RuntimeError, /Malformed or pre bundler-1.0.0 Gemfile.lock/)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has a default version" do
|
22
|
+
expect(EY::Serverside::DependencyManager::Bundler.default_version).not_to be_nil
|
23
|
+
expect(EY::Serverside::DependencyManager::Bundler::DEFAULT_VERSION).not_to be_nil
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns the default version for a 1.0 lockfile without a bundler dependency" do
|
27
|
+
expect(get_version('1.0-no-bundler')).to eq(EY::Serverside::DependencyManager::Bundler.default_version)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "gets the version from a 1.0.0.rc.1 lockfile w/dependency on 1.0.0.rc.1" do
|
31
|
+
expect(get_version('1.0.0.rc.1-with-bundler')).to eq('1.0.0.rc.1')
|
32
|
+
end
|
33
|
+
|
34
|
+
it "gets the version from a 1.0.6 lockfile w/dependency on 1.0.6" do
|
35
|
+
expect(get_version('1.0.6-with-bundler')).to eq('1.0.6')
|
36
|
+
end
|
37
|
+
|
38
|
+
it "gets the version from a 1.0.6 lockfile w/dependency on 1.0.6 (bundled ~> 1.0.0)" do
|
39
|
+
expect(get_version('1.0.6-with-any-bundler')).to eq('1.0.6')
|
40
|
+
end
|
41
|
+
|
42
|
+
it "gets the version from a 1.0.6 lockfile w/o dependency" do
|
43
|
+
expect(get_version('1.0.6-no-bundler')).to eq('1.0.6')
|
44
|
+
end
|
45
|
+
|
46
|
+
it "raises an error if it can't parse the file" do
|
47
|
+
expect { get_version('not-a-lockfile') }.to raise_error(RuntimeError, /Malformed or pre bundler-1.0.0 Gemfile.lock/)
|
48
|
+
end
|
49
|
+
|
50
|
+
context "rails version" do
|
51
|
+
it "retrieves rails version" do
|
52
|
+
expect(get_parser('1.3.1-rails-3.2.13').rails_version).to eq("3.2.13")
|
53
|
+
end
|
54
|
+
|
55
|
+
it "finds no rails version" do
|
56
|
+
expect(get_parser('1.0.18-mysql2').rails_version).to eq(nil)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "checking for gems in the dependencies" do
|
61
|
+
it "does not have any database adapters in a gemfile lock without them" do
|
62
|
+
expect(get_parser('1.0.6-no-bundler').any_database_adapter?).to be_falsey
|
63
|
+
end
|
64
|
+
|
65
|
+
it "has a database adapter in a Gemfile.lock with do_mysql" do
|
66
|
+
expect(get_parser('1.0.18-do_mysql').any_database_adapter?).to be_truthy
|
67
|
+
end
|
68
|
+
|
69
|
+
it "has a database adapter in a Gemfile.lock with mysql" do
|
70
|
+
expect(get_parser('1.0.18-mysql').any_database_adapter?).to be_truthy
|
71
|
+
end
|
72
|
+
|
73
|
+
it "has a database adapter in a Gemfile.lock with mysql2" do
|
74
|
+
expect(get_parser('1.0.18-mysql2').any_database_adapter?).to be_truthy
|
75
|
+
end
|
76
|
+
|
77
|
+
it "has a database adapter in a Gemfile.lock with pg" do
|
78
|
+
expect(get_parser('1.0.18-pg').any_database_adapter?).to be_truthy
|
79
|
+
end
|
80
|
+
|
81
|
+
it "has a database adapter in a Gemfile.lock with do_postgres" do
|
82
|
+
expect(get_parser('1.0.18-do_postgres').any_database_adapter?).to be_truthy
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "fetching the right version number" do
|
87
|
+
subject { get_parser('1.0.6-no-bundler') }
|
88
|
+
|
89
|
+
it "uses the default version when there is no bundler version" do
|
90
|
+
expect(subject.fetch_version(nil, nil)).to eq(EY::Serverside::DependencyManager::Bundler.default_version)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "uses the given version when there is no operator" do
|
94
|
+
expect(subject.fetch_version(nil, '1.0.1')).to eq('1.0.1')
|
95
|
+
end
|
96
|
+
|
97
|
+
it "uses the given version when the qualifier is `='" do
|
98
|
+
expect(subject.fetch_version('=', '1.0.1')).to eq('1.0.1')
|
99
|
+
end
|
100
|
+
|
101
|
+
it "uses the default version when we get a pessimistic qualifier and is lower than the default version" do
|
102
|
+
expect(subject.fetch_version('~>', '1.7.1')).to eq(EY::Serverside::DependencyManager::Bundler.default_version)
|
103
|
+
end
|
104
|
+
|
105
|
+
it "uses the given version when we get a pessimistic qualifier that doesn't match the default version" do
|
106
|
+
expect(subject.fetch_version('~>', '1.0.0')).to eq('1.0.0')
|
107
|
+
end
|
108
|
+
|
109
|
+
it "uses the given version when it's geater of equal than the default version" do
|
110
|
+
expect(subject.fetch_version('>=', '1.100.0')).to eq('1.100.0')
|
111
|
+
end
|
112
|
+
|
113
|
+
it "uses the default version when the given version is lower" do
|
114
|
+
expect(subject.fetch_version('>=', '1.0.1')).to eq(EY::Serverside::DependencyManager::Bundler.default_version)
|
115
|
+
end
|
116
|
+
|
117
|
+
it "selects only the first version expression" do
|
118
|
+
scan = subject.scan_gem('bundler', 'bundler (>=1.0.1, <2.0.0)')
|
119
|
+
expect(scan.last).to eq('1.0.1')
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe EY::Serverside::Maintenance do
|
4
|
+
let(:maintenance_path) { deploy_dir.join('shared', 'system', 'maintenance.html') }
|
5
|
+
|
6
|
+
context "deployed application" do
|
7
|
+
before do
|
8
|
+
deploy_test_application
|
9
|
+
end
|
10
|
+
|
11
|
+
it "enables the maintenance page" do
|
12
|
+
enable_maintenance
|
13
|
+
expect(maintenance_path).to exist
|
14
|
+
end
|
15
|
+
|
16
|
+
it "disables an enabled maintenance page" do
|
17
|
+
enable_maintenance
|
18
|
+
expect(maintenance_path).to exist
|
19
|
+
disable_maintenance
|
20
|
+
expect(maintenance_path).to_not exist
|
21
|
+
end
|
22
|
+
|
23
|
+
it "lets you know if the app is in maintenance mode" do
|
24
|
+
maintenance_status
|
25
|
+
maintenance_output = read_output.split("\n").select{|l| l.match("Maintenance")}
|
26
|
+
expect(maintenance_output.count).to eq(1)
|
27
|
+
expect(maintenance_output.first).to match(/Maintenance page: down$/)
|
28
|
+
|
29
|
+
enable_maintenance
|
30
|
+
|
31
|
+
maintenance_status
|
32
|
+
maintenance_output = read_output.split("\n").select{|l| l.match("Maintenance")}
|
33
|
+
expect(maintenance_output.count).to eq(1)
|
34
|
+
expect(maintenance_output.first).to match(/Maintenance page: up$/)
|
35
|
+
|
36
|
+
disable_maintenance
|
37
|
+
|
38
|
+
maintenance_status
|
39
|
+
maintenance_output = read_output.split("\n").select{|l| l.match("Maintenance")}
|
40
|
+
expect(maintenance_output.count).to eq(1)
|
41
|
+
expect(maintenance_output.first).to match(/Maintenance page: down$/)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Deploying an application that uses Node.js and NPM" do
|
4
|
+
with_composer_mocked do |composer_mocked|
|
5
|
+
with_npm_mocked do |npm_mocked|
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
mock_composer if composer_mocked
|
9
|
+
mock_npm if npm_mocked
|
10
|
+
deploy_test_application('multi_dep_manager')
|
11
|
+
end
|
12
|
+
|
13
|
+
it "runs 'npm install' and 'composer install'" do
|
14
|
+
npm_cmd = @deployer.commands.grep(/npm install/).first
|
15
|
+
expect(npm_cmd).not_to be_nil
|
16
|
+
|
17
|
+
update_cmd = @deployer.commands.grep(/composer.*self-update/).first
|
18
|
+
expect(update_cmd).not_to be_nil
|
19
|
+
|
20
|
+
composer_cmd = @deployer.commands.grep(/composer install/).first
|
21
|
+
expect(composer_cmd).not_to be_nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Deploying an application that uses Node.js and NPM" do
|
4
|
+
with_npm_mocked do |mocked|
|
5
|
+
before(:all) do
|
6
|
+
mock_npm if mocked
|
7
|
+
end
|
8
|
+
|
9
|
+
context "npm in detect mode" do
|
10
|
+
before do
|
11
|
+
deploy_test_application('nodejs')
|
12
|
+
end
|
13
|
+
|
14
|
+
it "runs 'npm install'" do
|
15
|
+
install_cmd = @deployer.commands.grep(/npm install/).first
|
16
|
+
expect(install_cmd).not_to be_nil
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "npm disabled" do
|
21
|
+
before do
|
22
|
+
deploy_test_application('npm_disabled')
|
23
|
+
end
|
24
|
+
|
25
|
+
it "does not run 'npm install'" do
|
26
|
+
expect(@deployer.commands.grep(/npm/)).to be_empty
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Deploying an application that uses PHP and Composer" do
|
4
|
+
|
5
|
+
with_composer_mocked do |mocked|
|
6
|
+
context "with composer available" do
|
7
|
+
before(:all) { mock_composer if mocked }
|
8
|
+
|
9
|
+
context "with a composer.lock" do
|
10
|
+
before(:all) do
|
11
|
+
deploy_test_application('php_composer_lock')
|
12
|
+
end
|
13
|
+
|
14
|
+
it "runs 'composer install'" do
|
15
|
+
install_cmd = @deployer.commands.grep(/composer install/).first
|
16
|
+
expect(install_cmd).not_to be_nil
|
17
|
+
end
|
18
|
+
|
19
|
+
it "attempts to run 'composer self-update' before 'composer install'" do
|
20
|
+
update_cmd = nil
|
21
|
+
@deployer.commands.each do |cmd|
|
22
|
+
update_cmd ||= /composer.*self-update/.match(cmd)
|
23
|
+
if /composer install/.match(cmd)
|
24
|
+
expect(update_cmd).not_to be nil
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "with composer disabled in ey.yml" do
|
31
|
+
before(:all) do
|
32
|
+
deploy_test_application('php_composer_disabled')
|
33
|
+
end
|
34
|
+
|
35
|
+
it "does not run composer" do
|
36
|
+
expect(@deployer.commands.grep(/composer/)).to be_empty
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "WITHOUT a composer.lock but with composer.json" do
|
41
|
+
before(:all) do
|
42
|
+
deploy_test_application('php_no_composer_lock')
|
43
|
+
end
|
44
|
+
|
45
|
+
it "outputs a warning about deploying without a .lock" do
|
46
|
+
warning_out = expect(read_output).to include("WARNING: composer.json found but composer.lock missing!")
|
47
|
+
expect(warning_out).not_to be_nil
|
48
|
+
end
|
49
|
+
|
50
|
+
it "runs 'composer install'" do
|
51
|
+
install_cmd = @deployer.commands.grep(/composer install/).first
|
52
|
+
expect(install_cmd).not_to be_nil
|
53
|
+
end
|
54
|
+
|
55
|
+
it "attempts to run 'composer self-update' before 'composer install'" do
|
56
|
+
update_cmd = nil
|
57
|
+
@deployer.commands.each do |cmd|
|
58
|
+
update_cmd ||= /composer.*self-update/.match(cmd)
|
59
|
+
if /composer install/.match(cmd)
|
60
|
+
expect(update_cmd).not_to be nil
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
unless $COMPOSER_INSTALLED
|
70
|
+
context "without composer available" do
|
71
|
+
|
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
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|