engineyard-serverside 2.6.15.cf2 → 2.6.15.pre
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.
- checksums.yaml +4 -4
- data/lib/engineyard-serverside/deploy.rb +0 -2
- data/lib/engineyard-serverside/paths.rb +34 -36
- 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 +160 -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/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.15.1-no-bundler +51 -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/bundler_old/Gemfile +5 -0
- data/spec/fixtures/repos/bundler_old/Gemfile.lock +15 -0
- data/spec/fixtures/repos/bundler_old/README +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 +126 -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 +360 -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 +378 -4
|
@@ -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,126 @@
|
|
|
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 "gets the version from a 1.15.1 lockfile w/o dependency" do
|
|
47
|
+
expect(get_version('1.15.1-no-bundler')).to eq('1.15.1')
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "raises an error if it can't parse the file" do
|
|
51
|
+
expect { get_version('not-a-lockfile') }.to raise_error(RuntimeError, /Malformed or pre bundler-1.0.0 Gemfile.lock/)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
context "rails version" do
|
|
55
|
+
it "retrieves rails version" do
|
|
56
|
+
expect(get_parser('1.3.1-rails-3.2.13').rails_version).to eq("3.2.13")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "finds no rails version" do
|
|
60
|
+
expect(get_parser('1.0.18-mysql2').rails_version).to eq(nil)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
context "checking for gems in the dependencies" do
|
|
65
|
+
it "does not have any database adapters in a gemfile lock without them" do
|
|
66
|
+
expect(get_parser('1.0.6-no-bundler').any_database_adapter?).to be_falsey
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it "has a database adapter in a Gemfile.lock with do_mysql" do
|
|
70
|
+
expect(get_parser('1.0.18-do_mysql').any_database_adapter?).to be_truthy
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "has a database adapter in a Gemfile.lock with mysql" do
|
|
74
|
+
expect(get_parser('1.0.18-mysql').any_database_adapter?).to be_truthy
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "has a database adapter in a Gemfile.lock with mysql2" do
|
|
78
|
+
expect(get_parser('1.0.18-mysql2').any_database_adapter?).to be_truthy
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it "has a database adapter in a Gemfile.lock with pg" do
|
|
82
|
+
expect(get_parser('1.0.18-pg').any_database_adapter?).to be_truthy
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it "has a database adapter in a Gemfile.lock with do_postgres" do
|
|
86
|
+
expect(get_parser('1.0.18-do_postgres').any_database_adapter?).to be_truthy
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
context "fetching the right version number" do
|
|
91
|
+
subject { get_parser('1.0.6-no-bundler') }
|
|
92
|
+
|
|
93
|
+
it "uses the default version when there is no bundler version" do
|
|
94
|
+
expect(subject.fetch_version(nil, nil)).to eq(EY::Serverside::DependencyManager::Bundler.default_version)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it "uses the given version when there is no operator" do
|
|
98
|
+
expect(subject.fetch_version(nil, '1.0.1')).to eq('1.0.1')
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it "uses the given version when the qualifier is `='" do
|
|
102
|
+
expect(subject.fetch_version('=', '1.0.1')).to eq('1.0.1')
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
it "uses the default version when we get a pessimistic qualifier and is lower than the default version" do
|
|
106
|
+
expect(subject.fetch_version('~>', '1.14.1')).to eq(EY::Serverside::DependencyManager::Bundler.default_version)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
it "uses the given version when we get a pessimistic qualifier that doesn't match the default version" do
|
|
110
|
+
expect(subject.fetch_version('~>', '1.0.0')).to eq('1.0.0')
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it "uses the given version when it's geater of equal than the default version" do
|
|
114
|
+
expect(subject.fetch_version('>=', '1.100.0')).to eq('1.100.0')
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "uses the default version when the given version is lower" do
|
|
118
|
+
expect(subject.fetch_version('>=', '1.0.1')).to eq(EY::Serverside::DependencyManager::Bundler.default_version)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it "selects only the first version expression" do
|
|
122
|
+
scan = subject.scan_gem('bundler', 'bundler (>=1.0.1, <2.0.0)')
|
|
123
|
+
expect(scan.last).to eq('1.0.1')
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
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
|